Synchronization of JMS queue with backup instance

Hello,
          I have the following problem: there are two machines in active - passive
          configuration. Both those machines serve as JMS servers in two environments.
          What I want to do is to keep a backup of JMS queue from the productive
          environment in the backup one, so in case of a disaster in the productive
          environment the backup one will stand up and will start processing the waiting
          messages. In order to do this I need to keep an up-to-date (or almous up to
          date, I will propably have to accept that some of the messages will be lost)
          copy of JMS queue.
          Have you ever worked on such a problem? Maybe you can suggest some solution?
          Best regards,
          Dawid Duda

Hi,
          Thanks for informations, but it is not exactly what I need.
          In my case I need to keep a backup of the queue in a separate location, to be
          able to start processing the data in case if the first one was i.e. burned.
          Therefore I was thinking about something like duplicating the database store
          under the queue (using database tools) in on-line mode to be able to start
          another instance in case of problems with the first one. Do you think such
          aproach would work?
          Best regards,
          dave
          Tom Barnes wrote:
          > Hi,
          >
          > Search the newsgroup and docs for keyword "migration". Automated "whole server" migration is available in 9.0, and automated "service" level migration is slated to be available in 9.5. (8.1 provides manual/scriptable service-level migration.) Also, depending on your use case, it might be that distributed destinations, bridges, server-side-store-and-forward (9.0+), or client side store-and-forward (9.2+) would fit your needs.
          >
          > http://edocs.bea.com/wls/docs81/jms/intro.html#jms_features
          >
          > http://edocs.bea.com/wls/docs92/jms_admin/intro.html#jms_features
          >
          > http://dev2dev.bea.com/pub/a/2004/05/ClusteredJMS.html (service-level migration paper)
          >
          > Tom

Similar Messages

  • Phantom JMS Queues with WLST

    Hello,
    I just started using WLST, and I've written a rather long script that creates
    a JMS server and some queues, among other things.
    I based my code on the JMS server creation example, and it works perfectly as
    long as the JMS server doesn't already exist. If it does, I get output like this:
    JMS Server already exists.
    [Caching Stub]Proxy for mydomain:Name=myjs,Type=JMSServer
    *** JMSQueue with name 'myAuditQ' has been created successfully.
    JMS destination is already parented
    Setting Type
    Setting JNDIName
    Traceback (innermost last):
    File "<input>", line 1, in ?
    File "loaddm.py", line 16, in doit
    File "setupServer.py", line 274, in ?
    File "<iostream>", line 145, in set
    WLSTException: 'Error occured while performing set : Unknown Error. Use dumpStack()
    to view the error stack trace'
    The line I put the *** by is interesting because the queue that was just created
    already exists, yet the create() does not throw any exceptions.
    Once this happens, I can do something like the following to add to the confusion:
    wls:/mydomain/config> cd('JMSQueue/myAuditQ')
    wls:/mydomain/config/JMSQueue/myAuditQ> ls()
    Traceback (innermost last):
    File "<input>", line 1, in ?
    File "<iostream>", line 176, in ls
    WLSTException: 'Error occured while performing ls : Could not find an MBean
    instance while doing getAttribute. Use dumpStack() to view the error stack trace'
    wls:/mydomain/config/JMSQueue/myAuditQ> dumpStack()
    javax.management.InstanceNotFoundException: mydomain:Name=myAuditQ,Type=JMSQueue
    at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.j
    ava:108)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
    at weblogic.management.internal.RemoteMBeanServerImpl_812_WLStub.getMBea
    nInfo(Unknown Source)
    at weblogic.management.scripting.InformationHandler.getAllAttributes(Inf
    ormationHandler.java:754)
    at weblogic.management.scripting.InformationHandler.la(InformationHandle
    r.java:538)
    at weblogic.management.scripting.InformationHandler.ls(InformationHandle
    r.java:146)
    at weblogic.management.scripting.WLScriptContext.ls(WLScriptContext.java
    :387)
    The code that generates this error is like this:
    try:
    r=create(cNode+'js','JMSServer')
    except Exception:
    print "JMS Server already exists."
    r=getTarget('JMSServer/'+cNode+'js')
    if clustered:
    target=getTarget('Server/'+cNode)
    try:
    r.addTarget(target)
    except Exception:
    print "JMS server is already targeted."
    print r
    for dest,attr in jms.items():
    try:
    q=create(dest+suffix,'JMS'+attr['Type'])
    except Exception:
    print "JMS Destination already exists."
    q=
    getTarget('JMS'+attr['Type']+'/'+dest+suffix)
    try:
    q.setParent(r)
    except Exception:
    print "JMS destination is already parented"
    cd('JMS'+attr['Type']+'/'+dest+suffix)
    for att, val in attr.items():
    print "Setting "+att
    if att != 'Type':
    set(att,val)
    cd('/')

    This seems to be a larger problem that I initially thought. Ideally
    weblogic server will not allow you to create an MBean with same name
    since it will collide with the unique object name for that MBean in the
    MBeanServer. From your posting I did not understand if you were able to
    create an MBean with the same name and did not get a
    InstanceAlreadyExists Exception. If you did get it then seems like there
    is a problem in the way the server is persisting the config.xml. There
    shouldn't be duplicate entries. Please file a support case [email protected].
    Thanks,
    -satya
    Justin Dossey wrote:
    (top replying because of the long post)
    It looks like this was caused by Weblogic 8 allowing WLST to create invalid domain
    configuration (config.xml). I opened config.xml up in an editor and found that
    even though I had been using Try: create(foo)/ except Exception: (getTarget(foo)),
    there were (many) duplicate entries for MBeans in config.xml. For instance, one
    Server was in there four times. Almost every Server had four or more SSL entries
    in config.xml. There were many unparented JMS Queues defined, as well-- this
    is what I believe caused my problem.
    So why does the try create actually create duplicate when an instance already
    exists?
    "Justin Dossey" <[email protected]> wrote:
    Hello,
    I just started using WLST, and I've written a rather long script that
    creates
    a JMS server and some queues, among other things.
    I based my code on the JMS server creation example, and it works perfectly
    as
    long as the JMS server doesn't already exist. If it does, I get output
    like this:
    JMS Server already exists.
    [Caching Stub]Proxy for mydomain:Name=myjs,Type=JMSServer
    *** JMSQueue with name 'myAuditQ' has been created successfully.
    JMS destination is already parented
    Setting Type
    Setting JNDIName
    Traceback (innermost last):
    File "<input>", line 1, in ?
    File "loaddm.py", line 16, in doit
    File "setupServer.py", line 274, in ?
    File "<iostream>", line 145, in set
    WLSTException: 'Error occured while performing set : Unknown Error. Use
    dumpStack()
    to view the error stack trace'
    The line I put the *** by is interesting because the queue that was just
    created
    already exists, yet the create() does not throw any exceptions.
    Once this happens, I can do something like the following to add to the
    confusion:
    wls:/mydomain/config> cd('JMSQueue/myAuditQ')
    wls:/mydomain/config/JMSQueue/myAuditQ> ls()
    Traceback (innermost last):
    File "<input>", line 1, in ?
    File "<iostream>", line 176, in ls
    WLSTException: 'Error occured while performing ls : Could not find
    an MBean
    instance while doing getAttribute. Use dumpStack() to view the error
    stack trace'
    wls:/mydomain/config/JMSQueue/myAuditQ> dumpStack()
    javax.management.InstanceNotFoundException: mydomain:Name=myAuditQ,Type=JMSQueue
    at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.j
    ava:108)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
    at weblogic.management.internal.RemoteMBeanServerImpl_812_WLStub.getMBea
    nInfo(Unknown Source)
    at weblogic.management.scripting.InformationHandler.getAllAttributes(Inf
    ormationHandler.java:754)
    at weblogic.management.scripting.InformationHandler.la(InformationHandle
    r.java:538)
    at weblogic.management.scripting.InformationHandler.ls(InformationHandle
    r.java:146)
    at weblogic.management.scripting.WLScriptContext.ls(WLScriptContext.java
    :387)
    The code that generates this error is like this:
    try:
    r=create(cNode+'js','JMSServer')
    except Exception:
    print "JMS Server already exists."
    r=getTarget('JMSServer/'+cNode+'js')
    if clustered:
    target=getTarget('Server/'+cNode)
    try:
    r.addTarget(target)
    except Exception:
    print "JMS server is already targeted."
    print r
    for dest,attr in jms.items():
    try:
    q=create(dest+suffix,'JMS'+attr['Type'])
    except Exception:
    print "JMS Destination already exists."
    q=
    getTarget('JMS'+attr['Type']+'/'+dest+suffix)
    try:
    q.setParent(r)
    except Exception:
    print "JMS destination is already parented"
    cd('JMS'+attr['Type']+'/'+dest+suffix)
    for att, val in attr.items():
    print "Setting "+att
    if att != 'Type':
    set(att,val)
    cd('/')

  • Process not writing to JMS queue with non-xa data source

    I have a process reading from a JMS-AQ with non XA, but it does not seem to be performing a commit and writing to the queue. If I use XA all the way ut works, but I don't get the desired error handling which I have built. Anything obvious I am missing? 11.1.1.5 SOA

    Hi,
    Under Weblogic JDBC Datasources select the datasource and then select Transaction tab there you can find Use XA datasource interface.
    and In DB adapter ... go to Configuration Tab ---Outbound Connection Pool--- Unhide the pool group -Select JNDI name ( e.g eis/DB/local ) ---enter the JDBC datasource created earlier in weblogic JDBC datasource against xADataSourceName..
    Now Click on Transaction tab & select Transaction Support: as XA Transaction .
    Regards,
    Abhinav Gupta

  • Problem Connecting to JMS queue with C sharp client

    Hi there,
    I am trying to connect to a JMS queue using a C# client but i have a problem trying to connect. The problem comes in when i run the C# script a dialog box appears requesting a T3TransportFactory.cs which i do not have on the client. and when i close it i get an exception on
    IContext context = ContextFactory.CreateContext(paramMap);
    Exception - Failed to connect using URL <t3://10.103.130.18:7001>
    StackTrace - at WebLogic.Messaging.Physical.T3TransportFactory.CreateT3Transport(IDictionary`2 paramMap) in c:\weblogic\dev\src1032\modules\weblogic-jms-dotnetclient\jmsimpl\src\WebLogic\Messaging\Physical\T3TransportFactory.cs:line 226
    at WebLogic.Messaging.Physical.ContextPhysical.CreateContext(IDictionary`2 paramMap) in c:\weblogic\dev\src1032\modules\weblogic-jms-dotnetclient\jmsimpl\src\WebLogic\Messaging\Physical\ContextPhysical.cs:line 83
    at WebLogic.Messaging.Context.CreateContext(IDictionary`2 paramMap) in c:\weblogic\dev\src1032\modules\weblogic-jms-dotnetclient\jmsimpl\src\WebLogic\Messaging\Context.cs:line 56
    The stacktrace indicates that it is looking for a T3TransportFactory.cs file in that particular path on the client (This is my speculation) but this directory path does not exist on the client machine with the c# code.
    I got a WebLogic.Messaging.dll referenced in my c# project and the ip/port numbers are correct (we know this cause we tried a java client that connected successfully)
    Can anyone assist me on this issue?

    The issue might be the dll file you are referring to. Did you use the dll from the weblogic installation folder (BEA_HOME/modules/com.bea.weblogic.jms.dotnetclient_1.X.X.X).
    Refer - http://docs.oracle.com/cd/E15051_01/wls/docs103/jms_dotnet/install.html#wp1075258
    Hope this helps.
    Thanks,
    Patrick

  • Error watching JMS queues with JMSUtils: java.lang.NoSuchMethodError: main

    Hi. I'm trying to use the command line utility JMSUtils to see if I have configured correctly a new queue in oc4j server but when I try to use execute it following the instructions I have found on the net it doesn't appear to be in the oc4j.jar
    I found that class in oc4jclient.jar but without a main method.
    I use the 10g Release 3 (10.1.3.0.0) for Microsoft Windows
    The instruction I execute is:
    C:\product\10.1.3\OracleAS_1\j2ee\home>java -classpath c:\ora10g\j2ee\home\oc4j.
    jar;c:\ora10g\j2ee\home\lib\jms.jar com.evermind.server.jms.JMSUtils -username admin -password welcome destinations
    Exception in thread "main" java.lang.NoClassDefFoundError: com/evermind/server/j
    ms/JMSUtils
    Mensaje editado por:
    user515269
    Mensaje editado por:
    user515269

    When I try to execute the JMSUtils class that's inside
    oc4j-internal.jar appears the same exception I had
    executing the class that's inside oc4jclient.jar:
    NoSuchMethodError: main
    Anybody knows why this class doesn't have a main method
    or how can I execute it?Jose:
    It seems that the command line utility JMSUtils is removed from oc4j 10.1.3, although the class is still packaged into some oc4j jar. According to the documentation, "In this release, OracleAS JMS Utility functionality is available as attributes and operations on various MBeans, replacing the deprecated command line interface of previous releases.".
    Please see the section "OracleAS JMS Utility" of the book "Oracle® Containers for J2EE
    Services Guide, 10g Release 3 (10.1.3) for Windows or UNIX, B14427-01", which is available on line.
    Hope this helps.

  • Configuration for JMS Adapter Sensor action and JMS Queue sensor action..!!

    Hi,
    Id like my BPEL process to send an XML message to JMS on Websphere,I was able to do this through a JMS adapter.But I would more like to add sensors into my process which would really do the same thing - send an XML message to JMS Q.
    Now I understand that there are two ways to do this,JMS Queue and JMS Adapter - thorugh bpel sensor action.
    I am able to use JMS Queue and it works fine , but adds its own xml tags to the message,Is there any way I could send only my xml payload as a message to the queue??
    Also could any1 tell me what is the configuration for JMS Adapter sensor action?
    Any suggestions how do I go about it??

    Hey Anirudh,
    Thanx for the response :-)
    All these hold good when I have an AQ adaptor right,But the thing is I want to send a message to a 'JMS' queue with out actually using an adapter configuration wizard and everythng..So I resolved to JMS queue Sensor action..Heres the xml snippet from the sensorAction.xml files which is generated..
    <actions targetNamespace="http://xmlns.oracle.com/Test_JMS_Logging" xmlns="http://xmlns.oracle.com/bpel/sensor" xmlns:tns="http://xmlns.oracle.com/Test_JMS_Logging" xmlns:pc="http://xmlns.oracle.com/bpel/sensor">
    <action name="JMS_LogEntry" publishName="" publishType="JMSQueue" enabled="true" filter="" publishTarget="jms/L_Queue">
    <property name="JMSConnectionFactory">jms/L_QueueCF</property>
    <sensorName>ActivitySensor_JMS</sensorName>
    </action>
    </actions>
    This works grt and adds messages to the queue..But adds its own header info according to the sensor.xsd loacted at the Oracle_home\bpel\system\xmllib\ folder.
    Right now the XML message added to the Queue is:-
    <actionData xmlns="http://xmlns.oracle.com/bpel/sensor">
    <header>
    <sensor sensorName="ActivitySensor_JMS" classname="oracle.tip.pc.services.reports.dca.agents.BpelActivitySensorAgent" kind="activity" target="AddLEntr
    y" xmlns:pc="http://xmlns.oracle.com/bpel/sensor" xmlns:ns2="http://www.ulrhome.com/2008/10/L_Entry" xmlns:tns="http://xmlns.oracle.com/Test_JMS">
    <activityConfig evalTime="completion">
    <variable outputDataType="string" outputNamespace="http://www.w3.org/2001/XMLSchema" target="$WriteL_Produce_Message_InputVariable/L_Entry/ns2:L_Entry/ns2:LCName"/>
    </activityConfig>
    </sensor>
    <instanceId>950016</instanceId>
    <processName>Test_JMS</processName>
    <processRevision>v2009_04_15__40833</processRevision>
    <domain>default</domain>
    <timestamp>2009-04-15T11:21:23.596-04:00</timestamp>
    <midTierInstance>app01.ulrhome.com:9700</midTierInstance>
    </header>
    <payload>
    <activityData>
    <activityType>scope</activityType>
    <evalPoint>completion</evalPoint>
    <durationInSeconds>0.011</durationInSeconds>
    <duration>PT0.011S</duration>
    </activityData>
    <variableData>
    <dataType>12</dataType>
    <data>
    <ns0:LCName xmlns:ns0="LC_Test1http://www.ulrhome.com/2008/10/L_Entry">LC_Test1</ns0:LCName>
    </data>
    <queryName/>
    <target>$WriteL_Produce_Message_InputVariable/L_Entry/ns2:L_Entry/ns2:LCName</target>
    <updaterName>AddL_Entry</updaterName>
    <updaterType>scope</updaterType>
    </variableData>
    </payload>
    </actionData>
    My requirement is that I need to add a sensor to the BPEL process which posts 'Only my payload message to the JMS queue'..
    What I would want the message in the Queue to be is : -
    <data>
    <ns0:LCName xmlns:ns0="LC_Test1http://www.ulrhome.com/2008/10/L_Entry">LC_Test1</ns0:LCName>
    </data>
    Also while creating a Sensor action I get another option as JMS Adaptor,I am not sure of what value to type in this wizard..Heres what I keyed in..M sure this is not right..Cos it dosnt work :-)
    <action name="SensorAction_JMS" publishName="" publishType="JMSAdapter" enabled="true" filter="" publishTarget="jms/LoggingQueue">
    <property name="JMSConnectionName">Log</property>
    </action>
    </actions>
    Could any 1 tel me what values are the right values..And does JMS Adapter mean that I have to create a JMS Apator in the project and give that connection name as a Value..
    I am not finding sufficiant Documentation for 'JMS Adapter' so M clueless and right now any help will be appriciated :-)
    Regards,
    Akshatha.

  • 10 million messages in one jms-queue

    Hi all,
              we want to put about 10 million jms-messages in a jms-queue with a jdbc
              persistent store on oracle database.
              Does anyone of you made experiences with that much messages in one
              queue? Are there any known limitations concerning the number of
              messages, e.g. according managing overhead, etc?
              Thanks for any comment,
              Klaas

    The $ is not a valid character for an element NAME per W3C standards. In short you can only use letters, numbers and the underscore ( _ )..
    You need to correct this message / data and reprocess the message.
    Setup an Error Queue so these messages get thrown some where that will not cause issues in your system. Then use error handling in something like AIA to report back to your support staff that a bad message was encountered, needs to be fixed and reprocessed.
    You will see that if you do a google search for how to escape a dollar sign in xpath, there are no good results....
    Hope that helps!
    -Luke

  • Remove JMS Queue

              Hi!
              I've managed to create JMS Queues by using JMSServerMBean and JMSQueueMBean.
              I'm trying to remove a JMS queue with the method :
              removeDestination(JMSDestinationMBean)
              but the JMS queue is not removed from the config.xml.
              Any suggestions?
              queueName = My Queue Name
              queueJNDI = My Queue JNDI Name
              JMSServerMBean jmsServerMB =
              (JMSServerMBean)mBeanHome_.getMBean(JMSServer,"JMSServer",SERVER);
              JMSQueueMBean jmsQueueMB =
              (JMSQueueMBean)mBeanHome_.findOrCreateAdminMBean
              (queueName,"JMSQueue",SERVER,jmsServerMB);
              jmsQueueMB.setJNDIName(queueJNDI);
              jmsServerMB.removeDestination(jmsQueueMB);
              -Ami
              

    Hi,
    Even i have a similar kind of requirement where in, i want to clear the JMS Queue Message programmatically, on certain condition.
    i am using Spring JMS. The JMS Queue has a listener. In the listener we want to clear the Queue contents based upon the condition.
    If anybody has any idea about this, please reply back.
    Thanks in Advance.
    Manjunath.

  • JMS Queue monitoring

    Hi everyone,
    is there any way to monitor a jms queue with its contained messages ? i'm talking about a tool like the jmx console in jboss - the JMS Adapter and JMS Notification in the Visual Admin only provide some properties.
    Any suggestions ?

    Hi,
    In short what you want (sending email in case message has stayed too long time in the queue), is NOT possible directly. That's not a standard feature by the JMS spec.   
    What is possible is the is so-called dead messages, once the acknowledgment fails the predefined number of times then the messages will be redirected to a special queue. From there the messages can be exported by telnet.
    Check SAP note 777930 for more info. Btw, it might be a good idea to get familiar with that note, otherwise if the external server let's say always throws an exception while processing the message, it will be moved to this special queue and unless someone issues the appropriate telnet commands, nobody will understand about this.
    However if you disable this  feature, that will mean that the message will be delivered endlessly, causing CPU load. Not nice if you have doubts in your external listeners.                                                                               
    Now about the queue monitoring :
    You could create manually a periodic task (EJB timers in J2EE 1.4 which is covered in the prerelease of the next server version, or if you are using Netweaver 04s or 04s than perhaps java.util.Timer) that will periodically open a JMS browser, check the  messages in the queue, if they have stayed too long time (>100 seconds for example ?) or if the queue is too big (>100 messages) you can send manually the email alert that something has went wrong. By usage of the JAVA API that should be simple
    Another thing you can do is that inside your external listeners and the onMessage method, you could check manually the number of times the message is redelivered, if it is above some threshold (i.e . if it is 3, that means the SAP server has delivered the message 3 times , since the listener have rejected it 2 times already),then you can send the email via the standard java API. The delivery count can be retrieved by using the standard optional property JMSXDeliveryCount from the message.                                                      
    HTH
    Peter

  • JMS Queue - lookup error

    Hi All,
    I have created a queue 'JMSTestQueue' through the Visual Administrator/ JMS Provider.
    I have also created an MDB in which the ejb-j2ee-engine.xml contains a parameter as
    <destination-name>JMSTestQueue</destination-name>
    Now, when I try to deploy my MDB I get an exception saying
    that
    javax.resource.spi.UnavailableException: The destination JMSTestQueue cannot be looked up. Last attempt performed : jms_vendor_queues_global/JMSTestQueue.
    Now here I can't understand that why the container is making a lookup in the path jms_vendor_queues_global.
    Because the JMS queue I have created has the JNDI path as
    jmsqueues/default/JMSTestQueue
    Another twist to the tale is that when I use the default JMS queue by the name 'JobQueue', then the MDB is deployed succesfully. This means the 'lookup' is successful.
    How do I solve this issue? I want to use a new JMS Queue with my MDB.
    I'll be really grateful, if someone can help me out.
    Thanks and Regards,
    Gagan Parhar.

    Hi All,
    I have created a queue 'JMSTestQueue' through the Visual Administrator/ JMS Provider.
    I have also created an MDB in which the ejb-j2ee-engine.xml contains a parameter as
    <destination-name>JMSTestQueue</destination-name>
    Now, when I try to deploy my MDB I get an exception saying
    that
    javax.resource.spi.UnavailableException: The destination JMSTestQueue cannot be looked up. Last attempt performed : jms_vendor_queues_global/JMSTestQueue.
    Now here I can't understand that why the container is making a lookup in the path jms_vendor_queues_global.
    Because the JMS queue I have created has the JNDI path as
    jmsqueues/default/JMSTestQueue
    Another twist to the tale is that when I use the default JMS queue by the name 'JobQueue', then the MDB is deployed succesfully. This means the 'lookup' is successful.
    How do I solve this issue? I want to use a new JMS Queue with my MDB.
    I'll be really grateful, if someone can help me out.
    Thanks and Regards,
    Gagan Parhar.

  • Siebel unable to connect to AIA JMS Queue

    Hi All,
    We are working on AIA 2.5 running on SOA Suite 10.1.3.4. We have installed the Order to Activate PIP. We are facing a problem when we try to sumit orders from Siebel. As per our understanding Siebel will put the message on the AIA_SALESORDERJMSQUEUE. However, when the Siebel tries to do so, it returns an error stating :
    12:55:59.699 PM Wed Sep 8: Checking if exception is a connection exception
    12:55:59.699 PM Wed Sep 8: CREATING_CONNECTION : is a Connection related exception
    12:55:59.703 PM Wed Sep 8: Exception during Send:
    oracle.jms.AQjmsException: Io exception: The Network Adapter could not establish the connection
    We have tried telnetting from the Siebel server to the SOA server using the SOA hostname and the RMIS port and we were able to connect. We are struggling to resolve this issue and any inputs you may have is igly appreciated.
    Thanks in advance for your time.
    Thanks and Regards,
    Saptarshi

    Hi,
    Ensure the following set up is done fine.
    The following Java Archive (JAR) files are required to be installed on the Siebel Server (for example, in the C:\cp directory) to communicate with Oracle SOA Suite:
    Siebel JMS JAR files:
    Siebel.jar
    SiebelJI_lang.jar, where lang is the language code of the default language of the Siebel installation
    JAR files required for accessing the JMS provider. For the OC4J JMS Provider supplied with Oracle SOA Suite, the following files are required:
    jms.jar
    jta.jar
    oc4jclient.jar
    optic.jar
    javaee.jar (obtained from the Java EE development kit)
    jmxri.jar
    jms.jar
    j2ee_1.3.01.jar
    jndi.properties file:
    java.naming.factory.initial=oracle.j2ee.rmi.RMIInitialContextFactory
    java.naming.provider.url=ormis://10.15.35.22:12701/default
    java.naming.security.principal=oc4jadmin
    java.naming.security.credentials=welcome1
    In order to debug this issue try writing a java client to access the JMS queue with above properties. This will help you to find the root cause.
    Regards,
    Rahul

  • JMS Queue working with only one AIA instance.

    Hi,
    We are having a Web-Logic JMS Queue configured for an instance. I have developed a consumer in AIA instance to pull the messages from the Queue.
    And this works fine.
    Now I have an another instance consumer which is pointing to the same Queue, but it fails to get the messages from it.
    I have switched off the consumer in the FIRST instance, but even then consumer from the SECOND instance was not able to pull the messages.
    Later, I tried switching on the consumer of the FIRST instance, and all the messages were pulled in this instance.
    So how can I make it work with two AIA instances and one JMS Queue, provided only one AIA instance consumer is active at a time.
    Thanks in Advance.
    Regards!

    * Likely your best bet is to check your server logs for "Error" and "Warning" messages, and/or, since these questions are specific to AIA's usage of JMS, post your questions to the AIA newsgroup.
    * WL JMS does not impose a limit on the number of consumers on a queue, but it does only allow one named connection with the same "client id" to connect at a time. Its unusual to name connections in queueing applications, but possible - and AIA may be doing this. (If this is the problem there should be "client id in use" style log messages or exceptions.)
    * Another possibility is a misconfiguration of your remote consumer. Make sure the URL is correct, and remember, if an application is running in the same cluster as the remote destination, don't specify a URL.
    * Also, if the remote consumer is running in a different domain, make sure the domains are named differently, and that no two JMS servers in the two domains have the same name (as per the unique naming restrictions documented in the Best Practices section of the JMS configuration guide -- http://download.oracle.com/docs/cd/E14571_01/web.1111/e13738/best_practice.htm#CACJCGHG ).
    Regards,
    Tom

  • Looking up a distributed queue with two persistent stores using two JMS Svr

    I am trying to do the following:
    1. Setup a distributed queue, i have two servers which are part of the cluster:
    Server A: t3://localhost:7003
    Server B: t3://localhost:7005
    I go in and create two jms servers:
    JMS Server JA: Target on Server A
    JMS Server JB: Target on Server B
    Now as the jms servers need to use a seperate persistent store for each one of them i create two persistent stores.
    2. Now from my MDB which is deployed on another server i lookup the queue using
    t3://localhost:7003,localhost:7005 as the provider url
    My problem is that i always end up listening to the messages on the first jms server and never get to read the messages on jms server JB as i guess i am able to connect to JMS Server JA so i never try and connect to JB? What to do about this?
    Edited by: user4828945 on Mar 23, 2009 2:32 PM

    Allocation of consumers wouldn't take into account the number of messages on the queue - they'd be allocated randomly. The scenario you're proposing shouldn't happen though - WebLogic Server takes into account whether a member has consumers when sending to a distributed destination, but otherwise, assuming that Queue 1 and Queue 2 both have consumers, then distribution of load will be equal. It's not the amount of consumers that determine how many messages get sent to a distributed destination member - it's whether it has members at all.
    Assuming that did occur initially though, you'd expect processing to be a little bit more intensive on the server with the queue holding 30 messages. It would pretty quickly even up though.
    From that point forward, it would be somewhere between difficult and impossible to get to the second scenario, where you have an unequal number of messages in each distributed destination member, unless the work being sent with each message to an MDB can vary significantly in how long it would take to process.
    Assuming (and it's a big if) you could get to that scenario, then the MDBs wouldn't switch over - they stay connected to a particular distributed destination member. And it's their connection to a member as a consumer that controls how WebLogic Server load balances messages (assuming default configuration) so that's part of what makes it unlikely to get there.
    From going back to first principles in the documentation, it seems like your best result would actually be from deploying the MDB to the cluster - that way, there's no remote connections to JMS queues, and you get a pool of MDBs on each server instance.
    Ref here: http://e-docs.bea.com/wls/docs81/ejb/message_beans.html

  • Use ODI with JMS Queue

    I'm new user in ODI and also JMS. I successfuly use odi to integrate data from two oracle database applications. I'm trying to integrate applications using JMS Queues (or Topics) and I failed to create odi "data server" for this technology. Can someone help me to do this or give me a sample to follow it?
    thanks.

    Hi there,
    You can actually create 2 different types of connections to a JMS Queue or Topic. Flat or XML. The simplest to start with is flat. This will basically cause ODI to view the contents of the queue as simple flat file data. Note, this is a bit advanced use of ODI, so I would perhaps go through connecting to an RDBMS first before walking through this. It will make more sense.
    To set this up, you will need to:
    1. Copy the necessary client files from OC4J, place them in the <ODI_HOME>/oracledi/drivers directory and restart ODI. The files you need are:
    - <OC4J_HOME>/j2ee/home/oc4jclient.jar
    - <OC4J_HOME>/j2ee/home/lib/javax77.jar
    - <OC4J_HOME>/j2ee/home/lib/jta.jar
    Sop copy those files and restart ODI.
    2. Create a physical connection (Topology Application/Physical Architecture/Technologies -> right click JMS Queues and select "Insert Data Server")
    3. In the Description tab, simpl fill in the Name field.
    4. In the JNDI tab , fille in the following:
    - JNDI Authentication - Simple
    - JNDI User: application user - this is the equivalent of javax.naming.Context.SECURITY_PRINCIPAL
    - Password: application password - this is the equivalent of javax.naming.Context.SECURITY_CREDENTIALS
    - JNDI Driver: This is the equivalent of javax.naming.Context.INITIAL_CONTEXT_FACTORY, so enter com.evermind.server.rmi.RMIInitialContextFactory
    - JNDI Url: This is the equivalent of javax.naming.Context.PROVIDER_URL, so put in ormi://<hostname>[:<port>]/<application>. For instance, with the basic OC4J install, I put in ormi://localhost/default.
    - JNDI Resource: This is the JNDI lookup key for your Queue Connection factory. For example, for the default OC4J installation, I put in jms/QueueConnectionFactory
    5. Click the Test button and click OK in the window that pops up. You should get a message box saying that your connection was successful.
    6. Click Apply or OK and a new window will pop up. In this window, go to the Context tab and click the Add button and in the row that appears, click on the right most field (it says <Undefined> and replace <undefined> with a logical name for your connection. Hit Enter and click OK)
    7. You've now connected to the Queue, to create the Queue object in ODI, go to the Designer window, go to models and create a new model.
    8. Set the name to whatever makes sense to you. Set the technology to JMS Queue and the Logical Schema to the logical connection name you created in step 6. In the Reverse tab, select Global from the Context dropdown menu.
    9. Click OK. You now have a container for any Queues that are in this connection.
    10. To point to the queue, right click your new model and select Insert Datastore.
    11. In the new window, name your datastore whatever you'd like. Set the resource name to the JNDI resource name for the queue (for example, with the default OC4J configuration, you could set this to jms/demoQueue.
    12. In the Files tab, set the File Format to fixed, and set the record separator to Windows or Unix (it doesn't really matter which one you pick)
    13. In the Columns tab, click the add button to add a column. Name the column something like DATA and set is to a String of size 1000.
    14. Click OK. You'll now be able to right click this new datastore and view data, granted in a very simple format. You can create a more complex flat file structure if you' like but this gives you a quick and easy to view the contents of the queue.
    I'd suggest trying to connect this way, post if you were successful and I will then post how to connect to an XML structured queue (it's a little teenie bit different)

  • Dynamic queue name with JMS Queue XML?

    Hi,
    Is it possible to use dynamic queue name with JMS Queue XML?
    I tried using a variable in the JNDI URL, and supply the value in a package. I specified the following in the JNDI URL in the Topology:
    e.g.
    <JMS_RESOURCE>?d=<DTD_FILE>&s=<SCHEMA>&JMS_DESTINATION=#PROJECT_NAME.dest_var
    I declared and set the variable in a package, then tried to load data from the above data server to database. But executing this package gave me the following error:
    7000 : null : java.sql.SQLException: javax.jms.JMSException: Cannot find the target in JNDI (#PROJECT_NAME.dest_var)
    java.sql.SQLException: javax.jms.JMSException: Cannot find the target in JNDI (#PROJECT_NAME.dest_var)
         at com.sunopsis.jdbc.driver.bg.executeQuery(bg.java)
         at com.sunopsis.jdbc.driver.bh.executeQuery(bh.java)
         at com.sunopsis.jdbc.driver.l.f(l.java)
         at com.sunopsis.jdbc.driver.l.executeUpdate(l.java)
         at com.sunopsis.sql.SnpsQuery.executeUpdate(SnpsQuery.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execSrcOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.i(e.java)
         at com.sunopsis.dwg.cmd.g.y(g.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Unknown Source)
    Am I doing it wrongly?
    Thanks!

    hi,
    as it's not in Adapter-Specific Message Properties
    http://help.sap.com/saphelp_nw04/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/content.htm
    looks like you cannot do it with jms adapter in standard
    use proxy or your own adapter instead
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

Maybe you are looking for

  • I have an ipad 1 and an iphone 4s, how do I manage these in iTunes given that they are different ios versions (5 and 6)?

    My iPhone 4s is on iOS 6 and that is fine (with various known issues of course). My iPad is using iOS 5 and does not support iOS 6, and here lies the problem. iTunes suggests updates to my Apps, some of which become iOS 6 only making them unusable on

  • Upgraded LR1 - LR3 Catalog: blank Grid, non functioning app

    I've been dealing with support on this, but they're utterly useless, taking days to get back to me and spinning me over troubleshooting 101 stuff. Problem: Upgraded a perfectly working LR1 catalog to LR3.  No issues during upgrade. Upon trying to use

  • Exported PDF opening behind InDesign

    Hi everyone, This is just an annoying little thing.  I have recently upgraded to CS5, now whenever I export to a PDF, the PDF window opens up behind the InDesign window. Is there anyway I can make it open at the front as it did before? Thanks in adva

  • Repetitive flash task

    Dear List I need to do the following: - 600 images are in one folder on my desktop - each image is labeled as "img0001.jpg", "img0002.jpg"... - import those 600 individual jpgs into flash 8 - convert each item into a movieclip - label each movieclip

  • Lightroom 4 and Photoshop CS5 hdr grayed out

    I have Lightroom 4 installed and Photoshop CS5 Prolem Merge to HDR in Photoshop Merge to Panorama Open Layers in Photoshop All Grayed out