I was reading through the discussion about “IS clustering to be avoided” and saw Reamon mentioned that TN can be “clustered” without clustering the IS servers. Several years ago I hired WM professional service to configure my environment and was told we have to cluster the IS servers first then we can point the TN pool to the same database.
The only reason for me to cluster the IS servers is to have a single TN DB. I manually distribute the load to the IS servers. I have two questions here:
Is it possible to point to the same TN DB from non-clustered IS servers?
I think even in a clustered environment, when you submit a doc to TN from IS server A, the processing rule will pick the processing service residing on server A. Is this correct?
Yes. I’ve done it many times. IS clustering is most decidedly not a prerequisite for TN clustering. There isn’t really anything to setting up a TN cluster–1) point all instances to the same TN DB; 2) configure TN properties to do notifications when profiles, doc types and rules are changed.
Once processing starts on a particular server, it stays there until you do something to “leave the machine”–e.g. publish an event to the Broker, HTTP post to somewhere else, etc. This is true of IS clustering too.
If the repository server is only used for IS clustering, I can get rid of the repo DB and the repo service now.
Another observation/question (question in the very end ) -
My current env. is clustered (3 servers). I submitted one EDI doc to TN (via the EDI web interface) from server-1. Then in TN console, I open document details → Tasks and open the task detail, I see the “Server ID” attribute shows Server-3.
I think here is the reason: I am using a queue to FTP files to the VAN. wm.tn.queuing:deliverBatch is automatically scheduled on each server as a job “scheduled for cluster”. So the job runs on a specific node randomly.
If I don’t cluster IS, when I set up the queue with delivery service VANFTP, I think it will only create non-clustered schedule for wm.tn.queuing:deliverBatch. But in this case which server will TN choose?
(I guess the answer is that the deliverBatch would be scheduled on whichever server you connect to - in the TN concole login window. I need to find a couple of test servers to try it.)
This is one function for which you may want to keep IS clustering–scheduled tasks. If you don’t have IS clustering, then just one of the IS/TN instances should have the queues defined/scheduled. Otherwise, you risk file/VAN contention if all 3 wake up at the same time and try to do the processing.
This will impact both your batchProcess and deliverBatch functions. You may need to keep IS clustering for this, unless you want to implement an alternative approach (which isn’t difficult, but more work).