Why we use MQ not JMS Queues or AQ ?
Hi,
Is there any specific reason most of the companies using MQ for messaging and not using AQ or JMS Queues ?
Hi,
AFAIK, the companies that have IBM infrastructure in place prefer using the MQs. Also as MQ is capable of being accessed using JMS as well as MQ, it adds to the usability.
Following could be helpful.
How to configure MQ with WLS (JMS MQ vs Native MQ)
Regards,
Neeraj Sehgal
Similar Messages
-
WHY WE USE VECTOR NOT ARRAY STRING
Hi
I want to know why we use Vector not bufferstring.
What is the difference Vector(1,1) and STRING[1][1]?
Which one we will prefer?
Why we will prefer one of them?
Please help me to find out.There are huge differences between array and Vector.
Array is a special class that allows to keep references to a number of Objects of some type. It has a maximum length set during construction, and does not offer any methods to change it's size (without defining a new array).
Vector is a class (thread-safe unlike it's new version ArrayList) that allows to keep references to any Object (may be of different types). It doesn't have a maximum length set, and can be potentionally of any size. It allows to easily remove, add, insert new elements and keeps all the elements in the order they were added (unless some object was inserted). This is a really well written class, and I'm always using it for storing some objects.
Hope it was helpful. -
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) -
Read message synchronously from JMS queue using OSB
Hi,
Is it possible to read message from the JMS queue using OSB based on the request invocation. I know messages can be read from the queue but it will be polling based.
The requirement is to have an OSB proxy service (HTTP service ) an an interface to the client application. Client application invokes the proxy service and the proxy service need to read message from the JMS queue and provide the message as response to the client.
Let me know if there are any pointers.
Thanks
SandeepHi,
I spent some time trying to do this and apart from creating custom database tables etc. I was not able to achieve this.
We wanted to use in memory JMS queues in our situation.
In the end we developed a Java Web Service which preformed the on-demand read from the queue (using a particular message selector)
This is working for us without a problem
Robert -
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. -
MDB in a Cluster using Local JMS Queue (not distributed)
Can I create a MDB that receives messages from a Local JMS Queue (created on each
node) rather than a distributed queue?
When I try to deploy such an MDB I get the following exception:
weblogic.management.DeploymentException: Exception:weblogic.management.ApplicationException:
activate failed for TestLocalMDBCluster Module: TestLocalMDBCluster Error: Exception
activating module: EJBModule(TestLocalMDBCluster,status=PREPARED) Unable to deploy
EJB: AsyncProcessor from TestLocalMDBCluster.jar: [EJB:011046]Unable to create
EJBRuntimeMBean. javax.management.InstanceAlreadyExistsException: mydomain:ApplicationRuntime=Node2_TestLocalMDBCluster,EJBComponentRuntime=Node2_TestLocalMDBCluster_TestLocalMDBCluster,Location=Node2,Name=Node2_TestLocalMDBCluster_TestLocalMDBCluster_AsyncProcessor_jms/myserver,ServerRuntime=Node2,Type=MessageDrivenEJBRuntime
at com.sun.management.jmx.RepositorySupport.addMBean(RepositorySupport.java:134)
at com.sun.management.jmx.MBeanServerImpl.internal_addObject(MBeanServerImpl.java:2371)
at com.sun.management.jmx.MBeanServerImpl.registerMBean(MBeanServerImpl.java:876)
at weblogic.management.internal.RemoteMBeanServerImpl.private_registerMBean(RemoteMBeanServerImpl.java:582)
at weblogic.management.internal.RemoteMBeanServerImpl.registerMBean(RemoteMBeanServerImpl.java:524)
at weblogic.management.runtime.RuntimeMBeanDelegate.register(RuntimeMBeanDelegate.java:166)
at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:122)
at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:85)
at weblogic.ejb20.monitoring.EJBRuntimeMBeanImpl.<init>(EJBRuntimeMBeanImpl.java:33)
at weblogic.ejb20.monitoring.MessageDrivenEJBRuntimeMBeanImpl.<init>(MessageDrivenEJBRuntimeMBeanImpl.java:30)
at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.initPool(MessageDrivenBeanPoolInfoImpl.java:182)
at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.activate(MessageDrivenBeanPoolInfoImpl.java:245)
at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.activatePoolInfo(MessageDrivenBeanInfoImpl.java:474)
at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.deploy(MessageDrivenBeanInfoImpl.java:440)
at weblogic.ejb20.deployer.EJBDeployer.activate(EJBDeployer.java:1327) at weblogic.ejb20.deployer.EJBModule.activate(EJBModule.java:610)
at weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3127)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2081)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2062)
at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
at weblogic.management.deploy.slave.SlaveDeployer.commitUpdate(SlaveDeployer.java:608)
at weblogic.drs.internal.SlaveCallbackHandler$2.execute(SlaveCallbackHandler.java:35)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
Is there any way to do this?
I assume you are using queues.
I truly wonder what you are doing different. Since the
error is occuring outside of JMS and in the EJB - before JMS is called -
I suggest posting to the ejb newsgroup.
Note that yours is a standard use case which distributed destinations
are actually specifically designed for (if you
are using customer connection factories, just
make sure ServerAffinity is enabled on the connection factory to
ensure that clients always connect to the local physical destination,
configure the MDB to refer to the JNDI name of the distributed
destination, and then target the MDB to the cluster - an MDB pool
will then automatically be dedicated to each physical destination).
Tom
Mark Colwell wrote:
> Nope. It happens every time we try the scenario no matter what the application
> is or which cluster. It always happens if we try to deploy even just a single
> MDB (no other beans in the jar) to a cluster where the queue specified in the
> deployment descripter is a local queue created on each node in the cluster. When
> the jar is deployed we get the error.
>
> We have a strange situation were we really need the queue to be local and not
> distributed but existing on every node. We can create all the local queues no
> problem but trying to then deploy the application goes boom.
>
> Thanks for the response!
>
> Cheers,
> Mark
>
> Tom Barnes <[email protected].bea.com>
> wrote:
>
>>Mark Colwell wrote:
>>
>>
>>>Can I create a MDB that receives messages from a Local JMS Queue (created
>>
>>on each
>>
>>>node) rather than a distributed queue?
>>
>>Yes. In fact this is the most common use case.
>>
>>
>>>When I try to deploy such an MDB I get the following exception:
>>
>>I don't recall seeing this exception before. It looks like a naming
>>conflict - it appears that somehow something is already running with
>>the same name. Are you somehow deploying the same app twice?
>>
>>javax.management.InstanceAlreadyExistsException:
>>mydomain:ApplicationRuntime=Node2_TestLocalMDBCluster,
>>EJBComponentRuntime=Node2_TestLocalMDBCluster_TestLocalMDBCluster,
>>Location=Node2,
>>Name=Node2_TestLocalMDBCluster_TestLocalMDBCluster_AsyncProcessor_jms/myserver,
>>ServerRuntime=Node2,
>>Type=MessageDrivenEJBRuntime
>>
>>FYI: As of one or two weeks ago, the MDB section of the
>>EJB docs has been heavily updated. I highly recommend
>>reading it.
>>
>>
>>>weblogic.management.DeploymentException: Exception:weblogic.management.ApplicationException:
>>>activate failed for TestLocalMDBCluster Module: TestLocalMDBCluster
>>
>>Error: Exception
>>
>>>activating module: EJBModule(TestLocalMDBCluster,status=PREPARED) Unable
>>
>>to deploy
>>
>>>EJB: AsyncProcessor from TestLocalMDBCluster.jar: [EJB:011046]Unable
>>
>>to create
>>
>>>EJBRuntimeMBean. javax.management.InstanceAlreadyExistsException: mydomain:ApplicationRuntime=Node2_TestLocalMDBCluster,EJBComponentRuntime=Node2_TestLocalMDBCluster_TestLocalMDBCluster,Location=Node2,Name=Node2_TestLocalMDBCluster_TestLocalMDBCluster_AsyncProcessor_jms/myserver,ServerRuntime=Node2,Type=MessageDrivenEJBRuntime
>>>at com.sun.management.jmx.RepositorySupport.addMBean(RepositorySupport.java:134)
>>>at com.sun.management.jmx.MBeanServerImpl.internal_addObject(MBeanServerImpl.java:2371)
>>>at com.sun.management.jmx.MBeanServerImpl.registerMBean(MBeanServerImpl.java:876)
>>>at weblogic.management.internal.RemoteMBeanServerImpl.private_registerMBean(RemoteMBeanServerImpl.java:582)
>>>at weblogic.management.internal.RemoteMBeanServerImpl.registerMBean(RemoteMBeanServerImpl.java:524)
>>>at weblogic.management.runtime.RuntimeMBeanDelegate.register(RuntimeMBeanDelegate.java:166)
>>>at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:122)
>>>at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:85)
>>>at weblogic.ejb20.monitoring.EJBRuntimeMBeanImpl.<init>(EJBRuntimeMBeanImpl.java:33)
>>>at weblogic.ejb20.monitoring.MessageDrivenEJBRuntimeMBeanImpl.<init>(MessageDrivenEJBRuntimeMBeanImpl.java:30)
>>>at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.initPool(MessageDrivenBeanPoolInfoImpl.java:182)
>>>at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.activate(MessageDrivenBeanPoolInfoImpl.java:245)
>>>at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.activatePoolInfo(MessageDrivenBeanInfoImpl.java:474)
>>>at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.deploy(MessageDrivenBeanInfoImpl.java:440)
>>>at weblogic.ejb20.deployer.EJBDeployer.activate(EJBDeployer.java:1327)
>>
>>at weblogic.ejb20.deployer.EJBModule.activate(EJBModule.java:610)
>>
>>>at weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3127)
>>>at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2081)
>>>at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2062)
>>>at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
>>>at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
>>>at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
>>>at weblogic.management.deploy.slave.SlaveDeployer.commitUpdate(SlaveDeployer.java:608)
>>>at weblogic.drs.internal.SlaveCallbackHandler$2.execute(SlaveCallbackHandler.java:35)
>>>at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197) at
>>
>>weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>>
>>>Is there any way to do this?
>>
>
-
Why does BEA recommend not using JMS-backed webservices?
Hi,
I guess the title says it all. In WebLogic 8.1, I noticed a couple of times
in the docs they say things like:
" BEA recommends that you implement your Web Service operation with only a
stateless session EJB or a Java class, and not with a JMS consumer or
producer. ".
Yet no explanation is given. Can anybody tell me why BEA doesn't recommend
them?
Thanks
JonCouple of reasons:
1. JAX-RPC or JSR-109 (J2EE 1.4) do not cover
JMS queues as backend component.
2. It is pretty easy to write a java class or SLSB that
looks up the queue and post data to it.
3. Queue based web services typically expose one
method in wsdl: post(Object data). Once the queue
is wrapped, the service can have explicit contract:
like sendMeDoc( Foo foo)
Regards,
-manoj
http://manojc.com
"Jon Mountjoy" <[email protected]> wrote in message
news:[email protected]..
Hi,
I guess the title says it all. In WebLogic 8.1, I noticed a couple oftimes
in the docs they say things like:
" BEA recommends that you implement your Web Service operation with only a
stateless session EJB or a Java class, and not with a JMS consumer or
producer. ".
Yet no explanation is given. Can anybody tell me why BEA doesn'trecommend
them?
Thanks
Jon -
Need to publish message from database to a JMS Queue using Java
I need to publish messages to a Websphere JMS Queue whenever any changes happen on a particular column of a table in oracle 11g. For that I have written a trigger on that particular table which in turn will invoke one java procedure. I have written the java procedure using a standalone java class and uploaded the java class as a schema object. While executing the procedure it is throwing error as it is not able to instantiate some of the java classes. I don't know how to provide the reference of different jar files while executing the java class. Can anyone help me on this.
Welcome to the forum!
>
I have written the java procedure using a standalone java class and uploaded the java class as a schema object. While executing the procedure it is throwing error as it is not able to instantiate some of the java classes. I don't know how to provide the reference of different jar files while executing the java class.
>
Clarify your statement. First you say 'standalone java class' but then you talk about instantiating java 'classes' and referencing 'different jar files'. If you are executing your Java class inside Oracle then any Java classes that your java class is referencing also have to be loaded into Oracle or it won't be able to reference or execute them.
How do you plan to ' publish messages to a Websphere JMS Queue '? Where is this queue you are talking about?
Why are you using a Java procedure and class instead of PL/SQL?
What is your 4 digit Oracle version (result of SELECT * FROM V$VERSION)? -
Why to use JMS????
Hi All,
i am new to JMS, can any body tell me Why to use JMS??
i know it used to send message but for why???
if u answer me with an example it will be useful for me.
thanks in advance.Hi,
Well one very good reason to use JMS is to keep applications that produce information decoupled from applications that consume information. With this decoupled approach, you can any number of producers and consumers sending and processing information...thus making your solution very scalable.
If you think of an online ordering system. A user plugs in a bunch of information about a product they wish to order. Once the form is completed, they hit the submit button. Now you can take one of two approaches:
1. You can have an Enterprise Java Bean ( EJB ) service the order request. That EJB could then communicate with other EJBs within an inventory system to perform a bunch of checks and eventually hand it off to the appropriate system to fulfill the order. From the user's perspective, they are going to have to wait until all of that processing has completed before they can move on. Not a very nice situation. There is a potential that the user could be sitting on their order screen for mintues!!
2. The other approach is to wrap all of the information supplied on the order form into a JMS message and forward the message to an appropriate Topic or Queue. On the other side of that Topic or Queue an inventory system subscribes for order messages. The nice thing about this approach: as soon as the message is sent off to the Topic or Queue, the user regains control of the screen and can continue browsing. Another benefit, you can have multiple consumers processing orders.
I apologize for the length of the response. These are only two benefits of using a Messaging-based approach....there are many, many more.
Regards,
J. -
Connecting to third party JMS Queue using Patchbay
Hi All,
We are trying to connect to a third party JMS queue configured in a remote weblogic server using ATG patcbay. We have configured the provider in dynamoMessagingSystem.xml and created a InitialContextFactory and provided all the queue configurations.
When it tries to initializes it is trying to create a dynamic queue and saying that JMSHelper class is not configured so that it cannot create the queue (The queue exists in the remote server). When we given configurations based on the details available under C:\ATG\ATG10.0.3\WebLogic\JMSProvider, it is saying that we have to provide a TopicConnectionFactory (We dont need to use any Topics). If we provide TopicConnectionFactory then it will say that your connection factory don't have any Topics configured.
I have read that for configuring with your application server's queue, this will try creating dynamic queues, but nowhere it is mentioned that how it will differentiate it is a third party queue or an application server queue.
In our case the application server and the remote server which acts as queue server are Weblogic.
Not sure why this is behaving like this and there is no proper documentation available in ATG that how to configure the third party queues using Patchbay.
Any pointers regarding this would be of great help.
Thanks,
R.Hello kilgores. Welcome to the Apple Discussions!
Something to ask your IT staff is if they use a proxy server for Internet access. If so, do they require proxy configuration scripts (.pac) to provide access to the Internet through your company's firewall. This information would normally be added to your browser's settings.
For Safari: Preferences... > Advanced > Proxies > Change Settings... > Automatic Proxy Configuration -
How to read the messages in the JMS Queue using JMX
Hi,
I want to read messages in the JMS queue using JMX. I was able to read using QueueBrowser but want to modify priority of the messages using JMX.
I tried to use JMSDestinationRuntimeMBean but it does not allow us to read messages unless we pass the message Id. Is there any way that I can get all the messages in the queue.
I am using Weblogic 8.1 SP4
Can someone please help me in this regard.
Thanks,
Kiran.
Edited by KGudipati at 10/22/2007 1:22 AMHi,
As far as i know, JMS Object Messages is not supported by XI JMS adapter.
you need to have the JMS provider to transform the message to bytes messages.
(Refer to SAP note 856346) -
JMS Queue Works in JDeveloper 10g, but not in Oracle 10g AS
Hello --
I have set up a JMS Queue on my local OC4J included with JDeveloper. I added my ConnectionQueueFactory and ConnectionQueue to the JMS.XML file in my environment. Everything works the way it should using JDeveloper with the embedded OC4J.
As soon as I deploy the application to Oracle Application Server, for some reason my MailSender Message Driven Bean cannot take delivery of the message. I don't know what I could be doing wrong but my JMS.XML file on the Application Server has been updated with the same ConnectionQueue information that is on my local JMS.XML file. In my log file I can see that the message is being posted to the queue, just no delivery.
If anyone out there has a suggestion I would appreciate it. This is my first attempt at ever using JMS.
Thanks,
FrankWilly_B wrote:
I removed the one that was listed, thinking that it was implicit to that line. BUT of course, I just went back and removed EVERY empty line, even between the comments and all...and it worked.
So the lesson here is that PL/SQL could care less about white space, but SQLPlus is picky....
Thanks. :)Exactly. And I have to make note of that in my written procedure for restoring some of our test databases from a cold backup of production. Turns out the control file trace script (backup controlfile to trace) inserts a blank line ... then sqlplus chokes on it when executing .. -
Using JNDI Provider for Oracle JMS Queue
Hello,
I created a JMS Queue in Oracle 9.2.0.1 and would like
a Java client to receive events from the Queue. I am
not running Oracle9iAS. I have access to WebLogic server
7.0 which is also a JNDI provider. Is there a sample code
that shows the steps on how to go about this.
thanks very much for any pointers.To define an Enterprise Message Source for AS JMS and OJMS in BAM, see Chapter 3 in the BAM Architect's User Guide.
Specifying Settings for Oracle (AS JMS and OJMS)
Settings for Oracle (AS JMS and OJMS) include:
■ Initial Context Factory.
For 10.1.3: oracle.j2ee.rmi.RMIInitialContextFactory
For 10.1.2: com.evermind.server.rmi.RMIInitialContextFactory
■ JNDI Service Provider URL. For standalone use oc4j: ormi://machine_name/
where machine_name is the OC4J installed host, and for production use Application Server: opmn:ormi://<machine_name>:<opmn request port>:home where machine_name is the application server installed host, opmn request port could be found from looking at opmn.xml in <App server install location>/opmn/conf
■ TopicConnectionFactory Name.
java:comp/resource/BAMTTT/TopicConnectionFactories/bam_ttq_tab
■ Topic Name. java:comp/resource/BAMTTT/Topics/bam_ttq
■ JMS Message Type. TextMessage.
■ Durable Subscriber Name. BAMFilteredSubscription
■ Message Selector. Message selector, for example, BAMFilter='true'
■ Client ID. ClientID
You can also refer to:
http://www.oracle.com/technology/products/integration/bam/10.1.3/TechNotes/TechNote_BAM_AQ_Configuration.pdf
Regards, Stephen -
Message posted from BPEL not found in oc4j JMS queue
Hi,
I am facing a weird problem when I try to post a message in oc4j JMS from a BPEL process.
There is no exception(Not even in the logs) and the BPEL process gets completed. But the message is missing(Could not find it while monitoring the queue).
I am using SOA suite 10.1.3.5 and the oc4j JMS queue which comes with the installation.
Can someone help me please.
Saptarishi
Edited by: saptarishi on May 25, 2010 3:51 PMGot a solution.
-
Weblogic 10.3 Not Removing Expired Messages from JMS Queues
Dear All,
We have an application that is running on Weblogic 10.3.
This application (let us call this application Y) receives messages on a JMS queue. These messages are placed on the queue by another application (let us call this application X). We would like to have these messages expire within a certain amount of time (i.e. 90000 ms) if they are not consumed.
Now when application X places the messages onto the queue for application Y to consume, the JMS producer sets the time to live to 90000 ms. We can see that expiration time has been set appropriately in the weblogic console. If a message sits on the queue for longer than 90000 ms the state string of the message is changed to "receive expired". What we don't understand is why the expired messages still end up being consumed from the queue.
We understand that Weblogic is supposed to have an 'Active Message Expiration' thread that will remove expired messages from the queue. The Expiration Scan Interval for the JMS Server is set to 30 (seconds).
Can anyone tell us why our expired messages don't seem to be deleted from the queues?
TimThank you for the response Rene.
We have set up both the active expiration scan and the message expiration policy. The active expiration scan is set for every 30 seconds. The message expiration policy is set to "discard". However, the expired messages are still being consumed. Is it possible we are doing something wrong? See a portion of our configuration files below.
We have set up the expiration scan time interval. See a portion of our config.xml below:
<jms-server>
<name>brokerJMSServer</name>
<target>AdminServer</target>
<persistent-store xsi:nil="true"></persistent-store>
<store-enabled>true</store-enabled>
<allows-persistent-downgrade>false</allows-persistent-downgrade>
<hosting-temporary-destinations>true</hosting-temporary-destinations>
<temporary-template-resource xsi:nil="true"></temporary-template-resource>
<temporary-template-name xsi:nil="true"></temporary-template-name>
<message-buffer-size>-1</message-buffer-size>
*<expiration-scan-interval>30</expiration-scan-interval>*
<production-paused-at-startup>false</production-paused-at-startup>
<insertion-paused-at-startup>false</insertion-paused-at-startup>
<consumption-paused-at-startup>false</consumption-paused-at-startup>
</jms-server>
<jms-system-resource>
<name>broker-jms</name>
<target>AdminServer</target>
<sub-deployment>
<name>EhrBrokerRequestQueue</name>
<target>brokerJMSServer</target>
</sub-deployment>
<descriptor-file-name>jms/broker-jms.xml</descriptor-file-name>
</jms-system-resource>
<admin-server-name>AdminServer</admin-server-name>
We have set up the message expiration policy in our jms descriptor. See a portion below:
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-jms xmlns="http://www.bea.com/ns/weblogic/weblogic-jms" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-jms http://www.bea.com/ns/weblogic/weblogic-jms/1.0/weblogic-jms.xsd">
<queue name="EhrBrokerRequestQueue">
<delivery-params-overrides>
<redelivery-delay>-1</redelivery-delay>
</delivery-params-overrides>
<delivery-failure-params>
<redelivery-limit>-1</redelivery-limit>
*<expiration-policy>Discard</expiration-policy>*
</delivery-failure-params>
<jndi-name>EhrBrokerRequestQueue</jndi-name>
</queue>
</weblogic-jms>
What could we be doing wrong?
Kind Regards,
Tim
Maybe you are looking for
-
My Iphone 5s doesn't ring anymore (sms, whatsapp, phone call, reminder in the calendar, etc) I can't find why. I trieds to go on Youtube and for that I have sound so it is just for the rings. Can somebody help me please? Thank you so much! Mary
-
My hubby has given me his old iPhone , I want to use his iTunes account for all the music we have but have my own collection of photos apps etc which I don't want him to have filling up his new phone can I transfer his music if I set up an account in
-
I am getting a message that Adobe Digital Edition 2.0 has stopped working.
I cannot open Digital Edition and tried downloading again, but nothing happens! I have Windows Vista. Thanks for helping
-
There is a bug in the acrobat for ipad. When you have an interactive PDF and you have buttons linking to pages in the PDF, the buttons appear with a bluish box damaging the view of the interactive PDF. Please let me know how to fix this or maybe is a
-
Is there a new way to Display Duplicates in iTunes 11?
Used to be under file Display Duplicates but now it is gone. Anyone found the new way? Is there one? Did they really take away that functionality??