Can some one please throw me a light on how to develop a process having activities running on different Integration servers 7.x versions?
Any Prerequisites to get this kind of process running like
- Any dbinstance should be shared by these IS?
Do they need to be in cluster?
How to use Designer to deploy this process(Having steps/Activities defined on multiple IS) to the all the IS where steps are defined?
Define Logical Servers for each of the Physical IS’es in designer. The IS flow/java services from the defined logical servers can be dragged and dropped into the process screen.
To generate a process that spans across multiple logical servers (and physical IS’es), create a JMS Alias in the IS with the name “PE_NONTRANSACTIONAL_ALIAS” for use by the process engine. More details on this is available in the “Designer Process Development Help” pdf.
They need not be in a cluster.
Build the process from designer as usual, the wrapper services will be generated for all the defined logical servers.
The process transitions between logical IS are done by documents transported via broker, so all IS hosting parts of a common process must be connected to the same broker. Using the broker enables also automatic restart in case of IS failure at the points were broker transitions are used (see PRT Guide for more details).
The process audit database is used to log the process and must be shared between all IS as well. Typically you should use the same DB for every functional alias beside ISInternal. ISInternal should be only the same for parts of a cluster.
About cluster and process executions: clustered IS would be appear as one IS to the process, so they may represent one of the logical servers and one of them handles the step. If different steps shall be executed on different (logical) servers, those must be in different clusters or no cluster at all.
Designer creates the correct fragments automatically on the logical server, but when migrating to the next environment (test, prod) you need to take care of defining the correct deployment set for the generated runtime parts using deployer. The process steps will start on the server where the runtime fragment for the steps is located, so you need to make sure that those are going to the right server. If you look into the generated runtime components there will be folders with names accoring to the logical servers.
Thanks for the reply
For the distributed process I have done the following as mentioned in previous posts.Consider that proces runs on IS1 and IS2
Shared broker across IS1 and IS2,
Shared ProcessAudit and ProcessEngine databases(associated the jdbc pools to same database)
Distributed process is running fine in this case.The problem that I see when a process fails the process is still in start state,its not going to fail state(checked in MWs).When resubmitted all the steps are being completed,but the process is still in stated state(not going to complere)
Tried by unchecking optimize locally and volatile transition documents.But found no use.
Do you see this working at any time,Any clues on how to resolve?
Distributed processes are running fine in my experience, where we are currently only using processes runnning in one logical server. In ou case most of the servers a clustered and this works fine.
Did you configure PE_NONTRANSACTIONAL_ALIAS? If this does not exist on all IS it gives problems.
There are some known bugs about process termination, check the PRT fixes.
We use terminate steps, even after error handlers and let them set the status to completed or failed, because we also had some terminated and status problems without them. Check if your errors are logged correclty, maybe you need to add an activity log to your error handler.
I have tried both the scenarios
with PE_NONTRANSACTIONAL_ALIAS and without PE_NONTRANSACTIONAL_ALIAS
I got the same result.I will check with the fixes today.
1.I got the process working fine even without PE_NONTRANSACTIONAL_ALIAS,only problem with failed case.Do we need PE_NONTRANSACTIONAL_ALIAS for processes running with brokers also.
Please note that My process is kicked of by broker document for all the below questions
I am not clear about the usage of PE_NONTRANSACTIONAL_ALIAS and have few questions
1.Since we use same broker across two IS’s ,I hope the while configuring PE_NONTRANSACTIONAL_ALIAS we specify the same broker on IS1 and IS2.What about client groups (while creating PE_NONTRANSACTIONAL_ALIAS),do they have to be same on both the IS.
2.when I configured PE_NONTRANSACTIONAL_ALIAS i see that when I restarted the failed process from MWS it is being communicated across all IS(checked in IS logs).
But when it is not configured,the restart event is posted to the only IS to which MWS is configured to.(Keeping my multi IS process is broker process)
This behaviour really bugs me as I am not able to understand whats happening
It would great help for me if you could answer these questions
You need to specify the broker under the Messaging part of the IS Admin page. I would use the same client groups, as otherwise you need to make sure that the pub/sub permissions are all in sync between the groups.
I think thats exactly like expected, as the PE_NONTRANSACTIONAL_ALIAS is the medium of PRT to commonicate between different IS.
Please be aware: If you need to be certain about your configuration settings and for all questions about webMethods internals you should direct your question to SAG support.
Thanks for the quick reply and letting me know about the restictions of webMethods internal discussions.
One last question which I put it wrongly in last post
Since we use same broker across two IS’s ,I hope the while configuring PE_NONTRANSACTIONAL_ALIAS we specify the same broker on IS1 and IS2.What about “CLIENTID” (while creating PE_NONTRANSACTIONAL_ALIAS)?
Can they be same on both the IS?
I hope not as they are pointing to same broker,Can you please let me know whether they could be same?
The clientID defines the queue on the broker side. Each clientID defines a queue. This can be the same if you want to balance load between several IS, but in this case those IS should be equally equipped. They must be the same for IS being in a cluster.
If your IS are assumed to to different work, clientIDs should be different.
The needed subscriptions are done automatically.