I am trying to create a JMS virtual service using the steps given in the following tutorial:
Tutorial 3: JMS Virtual Service Using DevTest Workstation - DevTest Solutions - 9.1 - CA Technologies Documentation
but while trying to verify the asset I get the following error. Please help fix this.
I do not have the Demo installed so I cannot check, but you might scan for activemq-all-x.x.x.jar in the demo installation directories. Look for "-all-x.x.x" not "-client-x.x.x" as the client jars may be missing things like hawtbuf jar.
Some info located here: Third-Party File Requirements - DevTest Solutions - 10.4 - CA Technologies Documentation
It is best to locate the version of the jar that is consistent with the version of ActiveMQ that you are connecting. There are sites where you could download the jar.
Activemq-all-x.x.x.jar is likely all you will need to place in DEVTEST_HOME/lib. I do not know if 5.8.0 is the version of ActiveMQ running in DT 9.1 or not.
After restarting the components, check the logs (class loader displays) to see if the JAR is pulled in or start Workstation and see if the test connection can be made.
I am using DevTest version 10.2.4 and I also installed the jar files as mentioned in that tutorial (as shown below)
Still not able get the results as mentioned in the tutorial.
Please let me know:
1. How can I find the version of ActiveMQ that the DevTest is connecting to?
2. In case I download the right Activemq-all-x.x.x.jar do I keep it in DEVTEST_HOME/lib or DEVTEST_HOME/hotDeploy folder?
1. How can I find version? -- not sure. My guess would be that 5.12.1 jars will be OK.
2. Which directory for jars? -- Most JMS jars behave better in DEVTEST_HOME/lib/shared. Jars in lib are loaded when the JVM process starts up. This is one reason you can usually see the JARs loading in the log files when the JVM starts. Jars in hotdeploy are loaded in a lazy fashion. For this reason, I always place JMS and JDBC jars in lib as a best practice. IBM MQ in particular, and most EMS, jars should go in lib.
Assuming you use version 5.12.1, when the Registry and Workstation are restarted, open the logs, find the process that starts, and look for something like this:
yyyy-MM-dd HH:mm:SS,719Z (HH:mm) [main] INFO com.itko.lisa.test.Environment - JVM process id: 67900
yyyy-MM-dd HH:mm:SS,724Z (HH:mm) [main] INFO com.itko.util.LogUtilities - Classpath: ...\..\lib\shared\activemq-all-5.12.1.jar
NOTE: I have seen situations where colleagues placed jars in lib/shared and they did not load. I have not seen that in my installs. If that happens, open a ticket with Support so they can review the installation.
Thank you for helping me with this. I moved the activemq-all-5.12.1.jar to DEVTEST_HOME/lib/shared folder and on restart it did show up on the logs, but while verifying the asset I am still getting the same error - Missing jar file activemq-all.jar
I did raise the ticket already, will follow up there. Please let me know if you have any other suggestions.
I would open a ticket at this point and get instruction from CA Support.
There is another way to force load jar files using LISA_PRE_CLASSPATH. This approach is likely not the best way to solve the issue; however, it might be worth testing to see if you can get Workstation running.
Refer to: Common Properties and Environment Variables - DevTest Solutions - 10.4 - CA Technologies Documentation
LISA_PRE_CLASSPATHUsed to add information before the DevTest classpath. DevTest does not use the OS environment CLASSPATH variable. To add your own JARs before the DevTest classpath, use LISA_PRE_CLASSPATH
WARNING: I have not tried this, but you might be able to add it as a directive in Workstation.vmoptions:
So to give a background on this issue, we have all the DevTest components in one remote server and till now I was connecting to that registry from a DevTest Workstation instance on my local system. The demo server, cars Windows Batch File are running on the remote server. I opened up the Cars 9 project on the local machine that I am working on and I was verifying the assests there. Thats when we got the 'Missing jar file activemq-all.jar' error. Although I updated all the locahost references in the config files to the remote server name.
When I try the same after logging onto the workstation on remote server, the assets get verified successfully.
Since you are connecting to ActiveMQ over the network from your Workstation to a remote server, I assume the JNDI Context URL used in the Cars9 Project on your Workstation is pointing to the Remote Server where the Demo is running. Is this correct?
The JNDI Context URL would be tcp://<remoteServer>:41616 not tcp://localhost:41616 (where remoteServer is your remote machine name or IP)
Is that setting in Project -> ActiveMQ JNDI Initial Context pointing correctly?
Yes I had changed the 'localhost' to <remoteServerName>, still it is not referring to the ActiveMQ on the remote server.
Sorry. I'm tapped out. Hopefully, CA Support can resolve this for you.
No worries, thank you for all your help though.
Retrieving data ...