Pages

Thursday, November 20, 2008

Using AQ in WebLogic 10.3

For a project we want to use a Message Driven Bean in WebLogic 10.3 which listens to an Oracle AQ queue. You can use a JMS bridge which uses jndi and OID to retrieve the connection and queue. This didn't work for me because the OID username and password must be same as the Database user of the queue. But there is another way to make this happen. Robert Patrick made a great howto. I decide to do same what Robert did I do it from JDeveloper 11G.
In this blog we will create a startup class for WebLogic which can connect to the AQ queues and topics.
First I made a new jdeveloper 11G application with 3 projects.
The first is wls10.3. This project generates a startup class jar ( I imported the wls10 and jms1.1 code from Robert) In this project there is also a password file generator for the database user / password. WLS uses this password file to connect to the Oracle database .
The MDB project is my Message Driven Bean which will enqueue the AQ messages.
The last project is JmsClient which can dequeue or enqueue new messages to AQ through WLS. Not directly to the database.


For these projects I need the AQ and Weblogic 10.3 remote-client library.



Now we can create a new jar ( deploy project wls10.3 to jar ) called WLS103AQJMSStartupClass.jar



Let's create in the scott/tiger schema a jms queue table called TEST_TABLE and a queue TEST

begin

sys.dbms_aqadm.create_queue_table(

queue_table => 'TEST_TABLE',

queue_payload_type => 'SYS.AQ$_JMS_MESSAGE',

sort_list => 'PRIORITY',

compatible => '10.0.0',

primary_instance => 0,

secondary_instance => 0,

storage_clause => 'tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited )');

end;

/

begin

sys.dbms_aqadm.create_queue(

queue_name => 'TEST',

queue_table => 'TEST_TABLE',

queue_type => sys.dbms_aqadm.normal_queue,

max_retries => 5,

retry_delay => 0,

retention_time => 0);

end;

/


Make sure to start the queue


Next step is to generate the password files which holds the scott/tiger username password.
We do this by running the AQJMSPasswordUtility class. Delete the aqjms.dat and aqjms_user.properties files.


com.oracle.oems.weblogic.AQJMSPasswordUtility -username scott -password tiger


this will generate the password files agian


I use in this blog the Weblogic server of jdeveloper 11g. In this middleware home I create a new folder jms_lib ( D:\oracle\Middleware\jms_lib ) . In this folder I copied the following files WLS103AQJMSStartupClass.jar, aqapi.jar , aqjms.dat, aqjms_user.properties and aqjms.properties files.


Change the aqjms.properties file so it matches with your database and queue.


# Oracle database connection-related properties#


Server=XPCND7010XMP


Port=1521


DBInstance=orcl


These are important settings ( I will use AQJMS_QueueConnectionFactory as my jndi connection factory lookup, I have a queue and I don't use XA )


XAQueueConnectionFactoryJNDIName=AQJMS_XAQueueConnectionFactory


QueueConnectionFactoryJNDIName=AQJMS_QueueConnectionFactory


XATopicConnectionFactoryJNDIName=AQJMS_XATopicConnectionFactory


TopicConnectionFactoryJNDIName=AQJMS_TopicConnectionFactory


Change QueueName1 to TEST ( the name of the Queue in the scott schema)


QueueName1=TEST


#QueueName2=JMSDEMO_QUEUE2


#TopicName1=JMSDEMO_TOPIC1


Give the queue name a jndi name so we can use this name in the JNDI lookup of the queue


QueueJNDIName1=ORAQ_TEST


#QueueJNDIName2=ORAQ_JMSDEMO_QUEUE2


#TopicJNDIName1=ORAQ_JMSDEMO_TOPIC1


We are ready with changing this file. Now we can configure Weblogic so it uses the startup class.


first open the setDomainEnv.cmd file located in D:\oracle\Middleware\jdeveloper\system\system11.1.1.0.31.51.56\DefaultDomain\bin


Add -Doracle.jms.useEmulatedXA=false -Doracle.jms.useNativeXA=true to the JAVA_PROPERTIES variable


and Add D:\oracle\Middleware\jms_lib\WLS103AQJMSStartupClass.jar;D:\oracle\Middleware\jms_lib\aqapi.jar to the PRE_CLASSPATH variable


Start the WebLogic Server where we will create a new Startup Class




Use as "AQJMSPropertiesFile=aqjms.properties, AQJMSPasswordFile=aqjms_user.properties, AQJMSSecretFile=aqjms.dat, AQJMSConfigDirectory=D:/oracle/Middleware/jms_lib" as arguments.

Or you can change the config.xml and add the startupclass to this xml

<startup-class>
<name>AQStartUpClass</name>
<target>DefaultServer</target>
<deployment-order>1000</deployment-order>
<class-name>com.oracle.oems.weblogic.AQJMSStartupClass</class-name>
<arguments>AQJMSPropertiesFile=aqjms.properties,AQJMSPasswordFile=aqjms_user.properties,AQJMSSecretFile=aqjms.dat,AQJMSConfigDirectory=D:/oracle/Middleware/jms_lib</arguments>
<failure-is-fatal>true</failure-is-fatal>
<load-before-app-deployments>true</load-before-app-deployments>
<load-before-app-activation>true</load-before-app-activation>
</startup-class>

Restart Weblogic and deploy the Message Driven Bean to WLS or use the dequeue / enqueue class to connect to weblogic / aq.
Here is some code from the dequeue java class which can connect to weblogic.

String queueName = "ORAQ_TEST";
String queueConnectionFactoryName = "AQJMS_QueueConnectionFactory";

Context ctx;

try {
Properties parm = new Properties();
parm.setProperty("java.naming.factory.initial","weblogic.jndi.WLInitialContextFactory");
parm.setProperty("java.naming.provider.url","t3://localhost:7101");
parm.setProperty("java.naming.security.principal","weblogic");
parm.setProperty("java.naming.security.credentials","weblogic");

ctx = new InitialContext(parm);

QueueConnectionFactory connectionFactory =
(QueueConnectionFactory)ctx.lookup(queueConnectionFactoryName);

connection = connectionFactory.createQueueConnection();
connection.start();
session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
queue = (Queue)ctx.lookup(queueName);
receiver = session.createReceiver(queue);

try {
javax.jms.TextMessage textMessage = (javax.jms.TextMessage)receiver.receive();
System.out.println("Receiving message [" + textMessage.getJMSMessageID() + "] enqueued at " + new Timestamp(textMessage.getJMSTimestamp()).toString());
String xmlText = textMessage.getText();
System.out.println(xmlText);
} catch (JMSException jmse) {
jmse.printStackTrace();
}

receiver.close();
session.close();
connection.close();


} catch (JMSException je) {
throw new RuntimeException("Fout opgetreden bij het starten ",je);
} catch (Throwable t) {
throw new RuntimeException("Fout opgetreden bij het starten ",t);


Download the 11g example project here

31 comments:

  1. Thanks Edwin for the post. I am also looking for a MDB listening to AQ. I have query on the startup class that dequeues the message when you restart the server. Would the java class be listening to the message continously like MDB which gets triggered onMessage event ? If not how can we configure the java class that keeps listening to this AQ continously.

    ReplyDelete
  2. Hi, you should create a mdb bean and a deployment descriptor

    here the code for the mdb

    @MessageDriven(
    activationConfig = {
    @ActivationConfigProperty(propertyName = "acknowledgeMode" , propertyValue = "Auto-acknowledge"),
    @ActivationConfigProperty(propertyName = "destinationType" , propertyValue = "javax.jms.Queue")
    },
    mappedName = "weblogic.wsee.DefaultQueue",
    name = "AQJMS_QueueMDB"
    )
    @TransactionManagement(TransactionManagementType.CONTAINER)
    @TransactionAttribute(TransactionAttributeType.REQUIRED)

    public class MessageDrivenEJBBean implements MessageListener {


    public void onMessage(Message message) {
    TextMessage textMessage = (TextMessage)message;

    }
    }


    and here is the weblogic-ejb-jar.xml file

    <?xml version = '1.0' encoding = 'windows-1252'?>
    <weblogic-ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-ejb-jar.xsd"
    xmlns="http://www.bea.com/ns/weblogic/weblogic-ejb-jar">
    <weblogic-enterprise-bean>
    <ejb-name>AQJMS_QueueMDB</ejb-name>
    <message-driven-descriptor>
    <pool>
    <max-beans-in-free-pool>10</max-beans-in-free-pool>
    <initial-beans-in-free-pool>10</initial-beans-in-free-pool>
    </pool>
    <destination-jndi-name>ORAQ_JMS_IN</destination-jndi-name>
    <connection-factory-jndi-name>AQJMS_XAQueueConnectionFactory</connection-factory-jndi-name>
    </message-driven-descriptor>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>

    ReplyDelete
  3. Thanks Edwin for your feedback. Just these settings on MDB and Weblogicejbjar.xml would be sufficient or should I need to configure foreign JMS provider in Weblogic admin. I am using Weblogic 10g Rel 3 server. Kindly guide.

    ReplyDelete
  4. Hi,

    if you this startup class then this is enough.

    thanks

    ReplyDelete
  5. Thanks Edwin for your quick response.

    Can't we have a simple logic of receiving it from MDB using FOreign JMS server in WL Server rather than using the start up class.

    Kindly apologise if I am deviating from your intended post.

    ReplyDelete
  6. Hi,

    I tried it but I don't got it working, I used a jms bridge, not the foreign jndi provider ( maybe this will work). I think you will get some serial id class errors

    good luck and let me know if it works

    ReplyDelete
  7. Forgot to tell, I also tried using Bridge, but it gives out of memory error for which Oracle suggests to try using JROCKIT JVM. Unfortunately our deployment environment is IBM AIX for which there is only IBM supplied JDK.

    ReplyDelete
  8. Setting up a AQ Foreign JMS server works fine with Weblogic 10.3.1 (the one that is part of FMW 11G). If you want to avoid MDB you could also write a simple web service (using @WebService annotation) that listens and can post to AQ. I got this to work too. So it can be done without startup class. See this link for some good official documentation

    ReplyDelete
  9. Looks like you have a new blog that talks about how to do it using 10.3.1. Too bad I saw this one first based on the google key words I used. But I 'm glad you wrote that new one. For others who come here first but are using 10.3.1 you may want to look at his new blog

    ReplyDelete
  10. "15.10.2009 17:20:55 EEST" "Warning" "EJB" "BEA-010061" "The Message-Driven EJB: MDBMobile is unable to connect to the JMS destination: AQJMS_MOBILE_QUEUE. The Error was:
    [EJB:011013]The Message-Driven EJB attempted to connect to the JMS connection factory with the JNDI name: AQJMS_QueueConnectionFactory. However, the object with the JNDI name: AQJMS_QueueConnectionFactory is not a JMS connection factory. NestedException Message is :com.oracle.oems.weblogic.AQJMSQueueConnectionFactory"

    ReplyDelete
  11. Hi Avia,

    Can you send me more information, and did you take a look at the foreign server in wls 10.3.1

    thanks Edwin

    ReplyDelete
  12. Weblogic@twist> cat aqjms.properties
    Server=10.0.10.10
    Port=1521
    DBInstance=twistdb
    QueueConnectionFactoryJNDIName=AQJMS_QueueConnectionFactory
    TopicConnectionFactoryJNDIName=AQJMS_TopicConnectionFactory
    XAQueueConnectionFactoryJNDIName=AQJMS_XAQueueConnectionFactory
    XATopicConnectionFactoryJNDIName=AQJMS_XATopicConnectionFactory
    QueueName1=AQJMS_MOBILE_QUEUE
    QueueJNDIName1=AQJMS_MOBILE_QUEUE



    Weblogic@twist> cat aqjms_user.properties
    AQJMS.username={3DES}/aBC0muajS0\=
    AQJMS.password={3DES}ynHYW/RbJtM\=

    AQStartUpClass: PropertiesFile=aqjms.properties,AQJMSPasswordFile=aqjms_user.properties,AQJMSSecretFile=aqjms.dat,AQJMSConfigDirectory=/oracle/weblogic/jms_lib/


    Weblogic@twist> cat setDomainEnv.sh
    JAVA_PROPERTIES="${JAVA_PROPERTIES} -Doracle.jms.useEmulatedXA=false -Doracle.jms.useNativeXA=true "
    PRE_CLASSPATH="/oracle/weblogic/jms_lib/AQJMSStartupClass.jar:/oracle/weblogic/jms_lib/aqapi.jar"

    Weblogic@twist> cat weblogic-ejb-jar.xml
    [?xml version = '1.0' encoding = 'UTF-8'?>
    [!--weblogic-ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-ejb-jar "
    xmlns="http://www.bea.com/ns/weblogic/weblogic-ejb-jar"-->
    [weblogic-ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-ejb-jar.xsd"
    xmlns="http://www.bea.com/ns/weblogic/weblogic-ejb-jar">

    [weblogic-enterprise-bean>
    [ejb-name>MDBMobile[/ejb-name>
    [message-driven-descriptor>
    [destination-jndi-name>AQJMS_MOBILE_QUEUE[/destination-jndi-name>
    [connection-factory-jndi-name>AQJMS_QueueConnectionFactory[/connection-factory-jndi-name>
    [!--destination-jndi-name>jms/JMSSST_Queue_Mobile[/destination-jndi-name-->
    [!--connection-factory-jndi-name>jms/JMSSST_Connection_Factory_DB[/connection-factory-jndi-name-->
    [/message-driven-descriptor>
    [/weblogic-enterprise-bean>

    [/weblogic-ejb-jar>



    Weblogic@twist> cat log

    [15.10.2009 17:57:17 EEST> [Info> [WebLogicServer> [BEA-000288> [com.oracle.oems.weblogic.AQJMSStartupClass reports: SUCCESS: Bound the following Oracle AQ objects into WebLogic JNDI:
    XAQueueConnectionFactory -> AQJMS_XAQueueConnectionFactory
    QueueConnectionFactory -> AQJMS_QueueConnectionFactory
    XATopicConnectionFactory -> AQJMS_XATopicConnectionFactory
    TopicConnectionFactory -> AQJMS_TopicConnectionFactory

    Queue(s):
    1.) AQJMS_MOBILE_QUEUE -> AQJMS_MOBILE_QUEUE



    [16.10.2009 9:25:22 EEST> [Warning> [EJB> [BEA-010096> [The Message-Driven EJB: MDBMobile is unable to connect to the JMS destination or bind to JCA resource adapter: AQJMS_MOBILE_QUEUE. Connection failed after 5 569 attempts. The MDB will attempt to reconnect/rebind every 10 seconds. This log message will repeat every 600 seconds until the condition clears.>
    [16.10.2009 9:25:22 EEST> [Warning> [EJB> [BEA-010061> [The Message-Driven EJB: MDBMobile is unable to connect to the JMS destination: AQJMS_MOBILE_QUEUE. The Error was:
    [EJB:011013]The Message-Driven EJB attempted to connect to the JMS connection factory with the JNDI name: AQJMS_QueueConnectionFactory. However, the object with the JNDI name: AQJMS_QueueConnectionFactory is not a JMS connection factory. NestedException Message is :com.oracle.oems.weblogic.AQJMSQueueConnectionFactory>

    ReplyDelete
  13. foreign server is not set.
    :)
    difficult to imagine how to configure

    ReplyDelete
  14. Very Strange,

    it looks fine. I will try your configuration back home. Can you see the jndi objects in the jndi browser and when wls start is there an error of the startup class or logging that it successfully started.

    thanks Edwin

    ReplyDelete
  15. I find another way

    update weblogic to 10.3.1
    remove all startup classes, aqapi.jar and other libraries
    configure foreign server


    <foreign-server name="AQForeignServer_DB">
    <sub-deployment-name>AQForeignServer_DB</sub-deployment-name>
    <default-targeting-enabled>false</default-targeting-enabled>
    <foreign-destination name="MOBILE_QUEUE">
    <local-jndi-name>jms/aq/MOBILE_QUEUE</local-jndi-name>
    <remote-jndi-name>Queues/AQJMS_MOBILE_QUEUE</remote-jndi-name>
    </foreign-destination>
    <foreign-connection-factory name="DBConnectionFactory">
    <local-jndi-name>ms/aq/DBConnectionFactory</local-jndi-name>
    <remote-jndi-name>QueueConnectionFactory</remote-jndi-name>
    </foreign-connection-factory>
    <initial-context-factory>oracle.jms.AQjmsInitialContextFactory</initial-context-factory>
    <jndi-property>
    <key>datasource</key>
    <value>jdbc/scottDS</value>
    </jndi-property>
    </foreign-server>

    Queues/AQJMS_MOBILE_QUEUE
    Queues/scott.AQJMS_MOBILE_QUEUE
    Where Queues is system sysnonym for javax.jms.Queue and AQJMS_MOBILE_QUEUE database queue
    QueueConnectionFactory - system synonym for
    javax.jms.QueueConnectionFactory

    @MessageDriven(name = "MDBMobile", mappedName = "weblogic.wsee.DefaultQueue")
    @TransactionManagement(TransactionManagementType.BEAN)
    @TransactionAttribute(TransactionAttributeType.NEVER)

    public class MDBMobile implements MessageDrivenBean, MessageListener {
    public void onMessage(Message message) {
    oracle.jms.AQjmsTextMessage mm = (oracle.jms.AQjmsTextMessage)message;
    String ACTION = mm.getStringProperty("ACTION");
    }



    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>MDBMobile</ejb-name>
    <message-driven-descriptor>
    <destination-jndi-name>jms/aq/MOBILE_QUEUE</destination-jndi-name>
    <connection-factory-jndi-name>jms/aq/DBConnectionFactory</connection-factory-jndi-name>
    <jms-polling-interval-seconds>1</jms-polling-interval-seconds>
    </message-driven-descriptor>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>


    http://forums.oracle.com/forums/thread.jspa?messageID=3813024
    http://download.oracle.com/docs/cd/E12839_01/web.1111/e13738/aq_jms.htm#CJAECHCC

    ReplyDelete
  16. Edwin,
    My jms config for my jms module has something like :

    foreign-server name="AQJMSForeignServer">
    11GEvalSubDeployment
    false

    Queue/MandInvcERRJMSQueue
    Queues/AIA_MANDINVCERRJMSQUEUE


    aqjms/XAQueueConnectionFactory
    XAQueueConnectionFactory

    oracle.jms.AQjmsInitialContextFactory

    datasource
    jdbc/AQDataSource



    I have created a new outbound connection jndi in the deployed JMSAdapter and updated the ConnectionFactoryLocation as aqjms/XAQueueConnectionFactory (as per the jms config file above). Even then I am unable to connect to the Queue mentioned. Its giving me the error as per the bpel snippet :
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'Produce_Message' failed due to: ERRJMS_ERR_CR_QUEUE_PROD. ERRJMS_ERR_CR_QUEUE_PROD. Unable to create Queue producer due to JMSException. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    JMS-190: Queue Queue/MandInvcERRJMSQueue not found


    Can you please look into this? Looking desperately for a solution to this.

    Thanks,
    Aparajeeta

    ReplyDelete
  17. Hi,

    can you send your config.xml and make some pics of the important steps, resource adapter , jms server & jms module targets , sub deployment and jms adapter steps in soa suite.

    biemond at gmail dot com

    thanks Edwin

    ReplyDelete
  18. Edwin,
    I tried to utilize the startup class with modifications to the aqjms.properties and aqjms_user.properties as per my Queue, QCF configs.
    I got no error during binding but the startup class invocation failed with the following error :
    #### <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> Failed to invoke startup class "AQJMSStartupClass", java.lang.UnsupportedOperationException: WebLogic server side components must use AQ JMS datasource configuration
    java.lang.UnsupportedOperationException: WebLogic server side components must use AQ JMS datasource configuration
    at oracle.jms.AQjmsQueueConnectionFactory.createQueueConnection(AQjmsQueueConnectionFactory.java:329)
    at com.oracle.oems.weblogic.AQJMSStartupClass.startup(AQJMSStartupClass.java:439)
    at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeStartup(ClassDeploymentManager.java:278)
    at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeClass(ClassDeploymentManager.java:256)
    at weblogic.management.deploy.classdeployment.ClassDeploymentManager.access$000(ClassDeploymentManager.java:54)
    at weblogic.management.deploy.classdeployment.ClassDeploymentManager$1.run(ClassDeploymentManager.java:205)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeClassDeployment(ClassDeploymentManager.java:198)
    at weblogic.management.deploy.classdeployment.ClassDeploymentManager.runStartupsBeforeAppDeployments(ClassDeploymentManager.java:145)
    at weblogic.management.deploy.classdeployment.ClassDeploymentService.start(ClassDeploymentService.java:20)
    at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    >

    Can you tell what went wrong here?

    Thanks,
    Aparajeeta

    ReplyDelete
  19. Hi

    what version of wls do you use. I tested this in 10.3.0 in a higher version of wls you can use Foreign Server.

    thanks

    ReplyDelete
  20. Can be this use with XA connetion? I need to dequeue on one AQ a enqueue on another AQ within one transaction

    ReplyDelete
  21. ok, and should I use this as well?: "-Doracle.jms.useEmulatedXA=false -Doracle.jms.useNativeXA=true"

    ReplyDelete
  22. Well, there is a bug in WLS causing ClassCastException when using these with OSB and XA. The bug is going to be fixed in OSB 11g.

    ReplyDelete
  23. Thanks Edvin for this great post.

    I have a stand-alone java application (client) which runs on JDK 1.4 on SCO Unix operating system and this client needs to enqueue and dequeue AdtMessage (or jms_message)messages into WLS 10.3.1 AQ queues which are created in oracle 11g r2.

    I'm wondering if your solution works under jdk 1.4?if so, could you please suggest which jar files I need in order to run your sample in such environment.

    Thanks

    ReplyDelete
  24. Hi,

    You can try to enqueue and dequeue on wls with AQ. But maybe you will have 2 problems. first need a wlfullclient. with 11g you can generate one for jdk 1.5 and 1.6
    second dont think it is seriazable because of AQ classes.

    but you don't need wls , you can do it directly or first lookup a datasource in wls.

    here some blogs of mine to help you

    http://biemond.blogspot.com/2008/02/jndi-connections-lookup-with-rmi-and.html
    or this
    http://biemond.blogspot.com/2008/10/lookup-oracle-database-queue-aq-with.html

    ReplyDelete
  25. Help - I am getting the exception below. Has this been resolved?


    Caused by: java.lang.ClassCastException: weblogic.jdbc.rmi.SerialConnection_weblogic_jdbc_rmi_internal_ConnectionImpl_weblogic_jdbc_wrapper_JTAConnection_weblogic_jdbc_wrapper_XAConnection_oracle_jdbc_driver_LogicalConnection_1033_WLStub cannot be cast to oracle.jdbc.internal.OracleConnection
    at oracle.jms.AQjmsGeneralDBConnection.getProviderKey(AQjmsGeneralDBConnection.java:96)
    at oracle.jms.AQjmsGeneralDBConnection.(AQjmsGeneralDBConnection.java:65)
    at oracle.jms.AQjmsDBConnMgr.getConnection(AQjmsDBConnMgr.java:566)
    ... 5 more

    ReplyDelete
  26. Hi,

    are you trying to lookup this queue in a other jmv then the weblogic jvm.

    this is not supported, you can do it in a mdb, soa suite or a webapp deployed on this wls server.

    thanks

    ReplyDelete
  27. Hello Edwin,

    Your example supports sending a message from OWS to an Oracle database. Is it also possible to send a JMS message from an Oracle database to an Oracle Weblogic Server using AQ? If so how is it done? If not, what approach would you use?

    Thanks,
    Vince

    ReplyDelete
  28. Hi,

    this is old , now you can use jms foreign server with AQ ( jms text message )

    http://biemond.blogspot.com/2009/07/using-aq-jms-text-message-in-wls-1031.html

    and it works in all directions from wls to aq and back.

    thanks

    ReplyDelete
  29. Hi Edwin. I was looking for the code posted in your first reply comment in this post (April 22, 2009 4:16 PM). I am new in this topic. I was googling but there is not a tutorial specifically of WL10 + JMS (with examples), and the explanation of each tag, and the relation with weblogic-ejb-jar.xml For example, I found in the code that the property mappedName is not used. If you know of a tutorial with a huge explanation please let me know. Thanks, Esteban

    ReplyDelete
  30. Hi Edwin,
    I have configured the startup class the sameway that you mentioned. The jar is added to the classpath. But the class is not beiing invoked. The logs inside the startup class are not written and this suggests that the method is not invoked.
    But If I remove the jar from classpath class not found exception is thrown.
    Can you help me with this issue.

    ReplyDelete