In Infor CRM / Saleslogix 8.1 a lot of the operations are now performed in an out of process service called “Job Service” for improved performance. This is great because no longer does the web server need to be bogged down with bulk activity operations, report generation, etc. It is definitely something that is going to be immensely useful in customizations – how often do we want to perform a long running operation like an import or a bulk record manipulation but can’t without blowing up the web server? Now we can offload those to the job service. There is a full API that lets you query the status of operations from Javascript so we can provide a progress update to the user.

Anyway, this post is not about the job service’s use per se, but rather how to deal with it in development and staging environment. Frequently in those cases we have need to run multiple instances of the SalesLogix web client for different databases. But with the default configuration, all those instances will connect to the same job service – which only interacts with 1 database at a time! So for example you could be running a report in instance B, but instead it will return the records from instance A.

In order to work around this problem, 2 things need to be done:

  • The job service needs to be deployed to a separate folder instead of the default “C:ProgramDataSageSchedulingTenantsSlxJobService“. It has to be a subfolder of the Tenants folder though (C:ProgramDataSageSchedulingTenants):
    Screenshot-11
  • The Infor CRM / SalesLogix client has to be told that it needs to communicate with this alternate “tenant” instead of the default SlxJobService. This is done by editing the sage.platform.scheduling.tenantId variable inside of the appSettings.config file:<add key="sage.platform.scheduling.tenantId" value="SlxJobService" />

That’s it! I have not had to restart the “Saleslogix Job Service” itself (it’s a Windows service) – it seems to pick up new deployments automatically.