Service Virtualization

  • 1.  Solace Queue Support

    Posted Apr 05, 2018 12:14 PM

    Hi, We have a requirement to submit the REST Jason file to Solace Queue. Could you please confirm Solace support with 10.1 version and any reference documentation will be helpful.

     

    Looking for a step in tst similar to IBM MQ Native Send and Receive now to submit Jason to Solace Queue



  • 2.  Re: Solace Queue Support
    Best Answer

    Posted Apr 05, 2018 01:40 PM

    My understanding is that Solace supports using the standard JMS/JNDI interface.  That would be the JMS Send Receive step:

    JMS Send Receive Step - DevTest Solutions - 10.1 - CA Technologies Documentation 

     

    A quick google search turned up the following example configuration values:

    JNDI Context Factory: com.solacesystems.jndi.SolJNDIInitialContextFactory

    JNDI Context URL: <host name>

    JNDI Context Username: <user name>@<vpn name>

    JNDI Context Password: <password>

     

    JNDI Connection Factory name: /JNDI/CF/Example

     

    JNDI Queue Name: /Queue/<queue name>



  • 3.  Re: Solace Queue Support

    Posted Apr 06, 2018 03:55 PM

    Hi, Do we have the Jar availabnle to support this Solace Q. Im seeing below error 

     

     

    ============================================================================
    | Error while trying to run an Asset search: Failed to create instance of asset com.solacesystems.jndi.SolJNDIInitialContextFactory:smf://syseai7.ntrs.com:55555: Class not found: JNDI Factory Class: com.solacesystems.jndi.So...
    ============================================================================



  • 4.  Re: Solace Queue Support

    Posted Apr 08, 2018 07:22 PM


  • 5.  Re: Solace Queue Support

    Broadcom Employee
    Posted Apr 08, 2018 10:32 PM

    It's a long time since I worked with Solace, so information might be outdated, but when I last virtualised services in Solace, I needed to:

    use the JNDI factory class as described by Kevin.

    Add a custom JMS property in the DevTest generation wizard, called "Solace_JMS_VPN" with the value logged in a text file.

    Configure proxy topics.

    Use "session://" as the prefix to use sessions instead of lookups (I believe the JMS asset configuration described by Kevin already does this in the background).

     

    Solace allows many custom parameters. Make sure you have those parameters so DevTest can configure its JMS transport to comply.

     

    However, your error suggests that the Solace JMS JAR driver file hasn't been copied to the correct location (either DEVTEST_HOME/lib or DEVTEST_HOME/HotDeploy - I don't remember which location is needed by that driver). DevTest doesn't ship with JMS client JAR files, as explained here:

    Third-Party File Requirements - DevTest Solutions - 10.2 - CA Technologies Documentation  - we simply need to copy the JMS client JARs for the environment in which we're working. Although the link provided by Kevin should take you to a place where you can download a Solace client JAR, I would ask your Solace administrator for a copy of the version they install, so you know you will be applying the same version. You could do this when you ask them about all the custom JMS properties they configure.



  • 6.  Re: Solace Queue Support

    Posted Apr 09, 2018 01:45 AM

    Thanks Rick, I will look in to this during my working hours Monday morning

     

    Meanwhile Im able to get the Jars from developer and able to configure the JNDI Context and JMS Destination but seeing the below error while trying to push message via tst step

     

     

     

     

    ============================================================================
    | null
    ============================================================================
    | Step:        JMS Send Receive
    ----------------------------------------------------------------------------
    | Trapped Exception: null
    | Trapped Message:   java.lang.NullPointerException
    ----------------------------------------------------------------------------
    STACK TRACE
    java.lang.NullPointerException
     at javax.naming.InitialContext.getURLScheme(InitialContext.java:294)
     at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:343)
     at javax.naming.InitialContext.lookup(InitialContext.java:417)
     at com.itko.lisa.jms.JndiUtils.lookupWithExpectedType(JndiUtils.java:45)
     at com.itko.lisa.jndi.asset.JndiLookupAssetDelegate.createInstance(JndiLookupAssetDelegate.java:98)
     at com.itko.lisa.messaging.asset.AbstractJmsJndiConnectionFactoryAsset.createInstance(AbstractJmsJndiConnectionFactoryAsset.java:74)
     at com.itko.lisa.messaging.asset.AbstractJmsJndiConnectionFactoryAsset.createInstance(AbstractJmsJndiConnectionFactoryAsset.java:34)
     at com.itko.lisa.asset.LocalAssetRuntime$InstanceEntry.open(LocalAssetRuntime.java:2320)
     at com.itko.lisa.asset.LocalAssetRuntime$InstanceEntry.checkOut(LocalAssetRuntime.java:1539)
     at com.itko.lisa.asset.LocalAssetRuntime$RuntimeEntry.checkOut(LocalAssetRuntime.java:803)
     at com.itko.lisa.asset.LocalAssetRuntime.doOpenAsset(LocalAssetRuntime.java:166)
     at com.itko.lisa.asset.LocalAssetRuntime.openAssetInScope(LocalAssetRuntime.java:123)
     at com.itko.lisa.asset.LocalAssetRuntime.openAsset(LocalAssetRuntime.java:114)
     at com.itko.lisa.messaging.asset.AbstractJmsConnectionFromFactoryAsset.createInstance(AbstractJmsConnectionFromFactoryAsset.java:102)
     at com.itko.lisa.messaging.asset.AbstractJmsConnectionFromFactoryAsset.createInstance(AbstractJmsConnectionFromFactoryAsset.java:44)
     at com.itko.lisa.asset.LocalAssetRuntime$InstanceEntry.open(LocalAssetRuntime.java:2320)
     at com.itko.lisa.asset.LocalAssetRuntime$InstanceEntry.checkOut(LocalAssetRuntime.java:1539)
     at com.itko.lisa.asset.LocalAssetRuntime$RuntimeEntry.checkOut(LocalAssetRuntime.java:803)
     at com.itko.lisa.asset.LocalAssetRuntime.doOpenAsset(LocalAssetRuntime.java:166)
     at com.itko.lisa.asset.LocalAssetRuntime.openAssetInScope(LocalAssetRuntime.java:123)
     at com.itko.lisa.asset.LocalAssetRuntime.openAsset(LocalAssetRuntime.java:114)
     at com.itko.lisa.messaging.asset.AbstractJmsSessionAsset.createInstance(AbstractJmsSessionAsset.java:84)
     at com.itko.lisa.messaging.asset.AbstractJmsSessionAsset.createInstance(AbstractJmsSessionAsset.java:35)
     at com.itko.lisa.asset.LocalAssetRuntime$InstanceEntry.open(LocalAssetRuntime.java:2320)
     at com.itko.lisa.asset.LocalAssetRuntime$InstanceEntry.checkOut(LocalAssetRuntime.java:1539)
     at com.itko.lisa.asset.LocalAssetRuntime$RuntimeEntry.checkOut(LocalAssetRuntime.java:803)
     at com.itko.lisa.asset.LocalAssetRuntime.doOpenAsset(LocalAssetRuntime.java:166)
     at com.itko.lisa.asset.LocalAssetRuntime.openAssetInScope(LocalAssetRuntime.java:123)
     at com.itko.lisa.asset.LocalAssetRuntime.openAsset(LocalAssetRuntime.java:114)
     at com.itko.lisa.messaging.asset.JmsProducerAsset.createInstance(JmsProducerAsset.java:108)
     at com.itko.lisa.messaging.asset.JmsProducerAsset.createInstance(JmsProducerAsset.java:29)
     at com.itko.lisa.asset.LocalAssetRuntime$InstanceEntry.open(LocalAssetRuntime.java:2320)
     at com.itko.lisa.asset.LocalAssetRuntime$InstanceEntry.checkOut(LocalAssetRuntime.java:1539)
     at com.itko.lisa.asset.LocalAssetRuntime$RuntimeEntry.checkOut(LocalAssetRuntime.java:803)
     at com.itko.lisa.asset.LocalAssetRuntime.doOpenAsset(LocalAssetRuntime.java:166)
     at com.itko.lisa.asset.LocalAssetRuntime.openAssetInScope(LocalAssetRuntime.java:123)
     at com.itko.lisa.asset.LocalAssetRuntime.openAsset(LocalAssetRuntime.java:114)
     at com.itko.lisa.messaging.jms.JmsSendOperation.doExecute2(JmsSendOperation.java:191)
     at com.itko.lisa.messaging.jms.JmsSendOperation.doExecute2(JmsSendOperation.java:68)
     at com.itko.lisa.asset.operation.AbstractRetryableRuntimeOperation.doExecute(AbstractRetryableRuntimeOperation.java:30)
     at com.itko.lisa.asset.operation.AbstractRuntimeOperation.execute(AbstractRuntimeOperation.java:167)
     at com.itko.lisa.messaging.builder.AbstractSendReceiveOperation.doExecute(AbstractSendReceiveOperation.java:155)
     at com.itko.lisa.asset.operation.AbstractRuntimeOperation.execute(AbstractRuntimeOperation.java:167)
     at com.itko.lisa.asset.operation.AbstractOperationStep.execute(AbstractOperationStep.java:176)
     at com.itko.lisa.asset.operation.AbstractOperationStep.execute(AbstractOperationStep.java:125)
     at com.itko.lisa.test.TestNode.executeNode(TestNode.java:981)
     at com.itko.lisa.test.TestCase.execute(TestCase.java:1294)
     at com.itko.lisa.test.TestCase.execute(TestCase.java:1198)
     at com.itko.lisa.test.TestCase.executeNextNode(TestCase.java:1183)
     at com.itko.lisa.editor.WalkThruPanel.prepAndExecNode(WalkThruPanel.java:1085)
     at com.itko.lisa.editor.WalkThruPanel.access$900(WalkThruPanel.java:72)
     at com.itko.lisa.editor.WalkThruPanel$10.doCallback(WalkThruPanel.java:992)
     at com.itko.util.swing.panels.ProcessingDialog$2.run(ProcessingDialog.java:194)
     at java.lang.Thread.run(Thread.java:745)
    ============================================================================



  • 7.  Re: Solace Queue Support

    Posted Apr 09, 2018 09:10 AM

    You need to configure a JMS Connection Factory as well.



  • 8.  Re: Solace Queue Support

    Posted Apr 12, 2018 09:26 AM

    Naresh, above solution worked for us. thanks Kevin.



  • 9.  Re: Solace Queue Support

    Posted Apr 17, 2018 02:42 PM

    Thank you Kevin..worked for me.