Author |
Message
|
qwerty123 |
Posted: Thu Oct 09, 2003 3:09 pm Post subject: Clusters |
|
|
Novice
Joined: 09 Oct 2003 Posts: 23
|
Hi Folks
I am new to workflow clustering and I am trying to use clusters in my workflow environment.
My existing setup has a Group FMCGROUP and a system FMCSYS
I have added another system to this group called FMCSYS1 by following instructions from various posts on this site (same runtime db for both system, different queue managers and the second system refers to the first queue manager as the primary queue manager)
On the client machine (running java application on websphere app server) I have a configuartion FMC to point to the system FMCSYS. The java application refers to the client configuration ID (FMC) to talk to the workflow server.
I am wondering as to what changes I have to do in my code (or this setup in general) in order for me to have the workflow system available through the second system FMCSYS2 in case of a failure of the first system FMCSYS ?
Also wondering how I can use the workflow client (using existing client configuration FMC) to talk to the system FMCSYS2 in this situation ?
Thanks in advance. |
|
Back to top |
|
 |
Ratan |
Posted: Thu Oct 09, 2003 3:52 pm Post subject: |
|
|
 Grand Master
Joined: 18 Jul 2002 Posts: 1245
|
are you using Client with a QM (Client Concentrator)? With client concentrator all your workflow systems will be available from the client. _________________ -Ratan |
|
Back to top |
|
 |
qwerty123 |
Posted: Thu Oct 09, 2003 4:07 pm Post subject: Clusters |
|
|
Novice
Joined: 09 Oct 2003 Posts: 23
|
Thanks for the response.
No, I am not using the client concentrator. What all do I need to do to incorporate that in my environment and also what changes I would need to do in my java code to handle that ?
thanks |
|
Back to top |
|
 |
vennela |
Posted: Thu Oct 09, 2003 4:59 pm Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Quote: |
On the client machine (running java application on websphere app server) I have a configuartion FMC to point to the system FMCSYS. The java application refers to the client configuration ID (FMC) to talk to the workflow server.
|
From the client machine, how did you create the configuration to talk to the workflow server? did you use MQ Client or MQ Server.
If you have used MQ Server and if you have created another QMGR, then you don't have to do anything to achieve failover. |
|
Back to top |
|
 |
qwerty123 |
Posted: Fri Oct 10, 2003 8:45 am Post subject: |
|
|
Novice
Joined: 09 Oct 2003 Posts: 23
|
On the client machine I am using the MQ Workflow client which uses the MQ client, I do not have a MQ Server with a queue manager setup on this machine, looks like I will have to do that (as per your suggestion). Here is the piece of code that I use to connect to the workflow server
<<<<<<<<<
Agent agent = new Agent();
String confID = agent.getConfigurationID();
if (confID != null && !confID.equals("FMC"))
agent.setConfigurationID("FMC");
else
agent.setLocator(agent.LOC_LOCATOR);
>>>>>>>>>>>>>>>>>
As you can see I am using the MQ Workflow API to establish the connection to the workflow server, are you suggesting that I will have to use MQ API instead (if I use the queue manager) ?
Wondering what all changes I will have to make in the code/setup to get my application to work using the Queue Manager (client concentrator) on the client machine ?
Thanks once again |
|
Back to top |
|
 |
vennela |
Posted: Fri Oct 10, 2003 10:29 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
With your present setup, you cannot dynamically ask one workflow client to connect to a different server if the other server fails.
If you want to connect to the second SYSTEM, then you have to do two things
1. In the configuration FMC -> Add connect names, so that it will have the second system and second systems queue manager name
2. In the program, while you issue a locate("","") call, you have to explicitly specify the system and group, otherwise it will take the first system and group of that configuration.
Hope this helps |
|
Back to top |
|
 |
qwerty123 |
Posted: Fri Oct 10, 2003 11:45 am Post subject: Cluster |
|
|
Novice
Joined: 09 Oct 2003 Posts: 23
|
I did these as per your suggestion :
<<<<<
1. In the configuration FMC -> Add connect names, so that it will have the second system and second systems queue manager name
2. In the program, while you issue a locate("","") call, you have to explicitly specify the system and group, otherwise it will take the first system and group of that configuration.
>>>>>
Now I am able to log on to my workflow by specfying the name of the system I want to connect to and have been able to simulate availabilty by shutting down first system and connecting to the second using the same configuration ID. This also means that in case of a failover of first of the systems, I will have to trap the exception in my code and connect to the other system by explicitly specifying the name of the second system.
I am also trying to understand how load balancing would be achieved in this case ? Do I need to use a client concentrator to achieve that and if so how is that acheived ? would I be required to explicitly specify the name of the system I wish to connect to and if so, would that achieve load balancing for me without me having to write something that connects to my two systems alternatively on subsequent request ?
thanks |
|
Back to top |
|
 |
vennela |
Posted: Fri Oct 10, 2003 12:24 pm Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Yes, you have to use client concentrator to achieve load balancing.
Now this is how it works
Let's say A, B are two machines with workflow servers
C is your client concentrator.
Your workflow clients will connect to C. C will round robin between A and B for each of your client server communication. If either of A or B is down, then it will communicate with the available system.
Hope this helps
-------
Venny |
|
Back to top |
|
 |
qwerty123 |
Posted: Fri Oct 10, 2003 1:15 pm Post subject: clusters |
|
|
Novice
Joined: 09 Oct 2003 Posts: 23
|
I understand client concentrator as a Queue Manager, now if I setup a new queue manager on my client machine, what kind of a setup for the Workflow client do I need to do on this cleint machine ?
Would I be able to still use the MQ Workflow API or do I have to recode the application using MQ API ?
thanks |
|
Back to top |
|
 |
Ratan |
Posted: Fri Oct 10, 2003 1:23 pm Post subject: |
|
|
 Grand Master
Joined: 18 Jul 2002 Posts: 1245
|
Everything would be same of course with the added benefits of using Client Concentrator. All you need to do is install MQ Server and create a WF Client Configuration to use the the QM to connect to Workflow Server. You will not have to use MQ API. _________________ -Ratan |
|
Back to top |
|
 |
qwerty123 |
Posted: Fri Oct 10, 2003 5:38 pm Post subject: cluster |
|
|
Novice
Joined: 09 Oct 2003 Posts: 23
|
Guys,
Thanks for your help. I have come across another hurdle, I just found out that the Client Concentrator setup is not supported on Version 3.3.2 of the workflow which is what I am using. Is there a way to achieve this setup in V3.3.2 and could you please provide details ?
thanks |
|
Back to top |
|
 |
vennela |
Posted: Fri Oct 10, 2003 9:13 pm Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Quote: |
I just found out that the Client Concentrator setup is not supported on Version 3.3.2 of the workflow which is what I am using. |
Where did you get this information from.
I am sure it is supported. It is also supported with 3.3 also. If you are looking for 3.3.2 clint concentrator setup look in
3.3.2 Installation guide Appendix I. Quick client concentrator setup
-------
Venny |
|
Back to top |
|
 |
qwerty123 |
Posted: Fri Oct 10, 2003 11:00 pm Post subject: clusters |
|
|
Novice
Joined: 09 Oct 2003 Posts: 23
|
I found information on the client Concentrator not being supported in version 3.3.2 on this site itself in one of the threads. Having said that, it did say that it is fully supported through Version 3.4 and that there is a workqround to creating a client concentrator in v3.3.2.
thanks |
|
Back to top |
|
 |
jmac |
Posted: Sat Oct 11, 2003 7:14 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
If I recall correctly, the issue here is that the ClientConcentrator setup was integrated into the config utility at some point (dont remember exactly when) but I agree with Vennela that you can definitely use it on 332. but I would highly recommend moving to a newer version if at all possible. _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
qwerty123 |
Posted: Wed Oct 15, 2003 3:39 pm Post subject: Clusters |
|
|
Novice
Joined: 09 Oct 2003 Posts: 23
|
Thanks guys.
My friend Rambo just posted a thread regarding clustering, him and I are both trying to achieve the same goal, i.e. be able to have a clustered environment which provides performance improvement and high availability.
From the various posts and replies I have understood that in a clustered environment, if one system is down, our requests should be automatically entertained by the other available system in the cluster. We have been trying to simulate this by shutting down one system and then trying to use the admin utility to connect, I was expecting the utility to connect automatically to the other available system but it seems that the it always tries to connect to the same system and if that system is unavalible, the utility keeps waiting till it gets an timeout error.
We are looking for a solution where in case of unavailability of system(s), we do not have to trap exceptions (timeout etc) in our code and then try connecting to an available system in the cluster by specifying the available system's name, I mean is there a way to connect to any system in the cluster by SPECIFYING THE SAME CONNECT NAMES ?
thanks |
|
Back to top |
|
 |
|