- Basic JMS Demo using WebLogic Queue
- Steps to Configure Uniform Distributed Queue (UDQ) on Weblogic Server
- JMS Demo using WebLogic Uniform Distributed Queue (UDQ)
- Steps to Configure JMS Automatic Migration Using Consensus Leasing
- JMS Resources using JMX
- Basic JMS Demo using WebLogic Topic
- Steps to Configure Durable Subscriber Topic on Weblogic Server
- JMS Demo using WebLogic Durable Subscriber Topic
- Steps to Configure Error Queue on Weblogic Server
- Steps to Configure Messaging Bridge on Weblogic Server
- JMS Demo using WebLogic Messaging Bridge
- Steps to Configure Store-and-Forward (SAF) on Weblogic Server
- JMS Demo using Weblogic Store-and-Forward (SAF)
- Sending Email Alert for JMS Using WLST
- WebLogic JMS Monitoring Using WLST
- How to Configure Weblogic Messaging Bridge with JBoss
- How To Pause and Resume A Queue Using WLST
- How to Move Messages From One Queue To Another Queue Using WLST
- [Updated Version] How to Move Messages From One Queue To Another Queue Using WLST
August 19th, 2010 on 10:02 pm
Hi,
We have a production environment in which we use Tibco for messaging,my question is if we need to refresh JMS queue we are untargetting entire JMS module and targetting back to cluster which sometimes hangs admin due to many applications in domain,is there any other option to refresh only JMS queue other module untarget/target.Please give me all options we r using 9.2MP3 weblogic.
Thanks,
Ramireddy
September 25th, 2010 on 7:10 pm
Hi Ramireddyv,
Would request you to please let us know why do you need to refresh the JMS queue at the first place.
Do you get any issue or pending messages if you do not refresh WLS queue?
Regards,
Ravish Mody
November 8th, 2010 on 6:09 am
Hi Guys,
I am very new to Weblogic and JMS.
Can you provide me few steps to travel safely in this Journey.
Regards,
Kal.
November 8th, 2010 on 10:10 am
Hi Kal,
I suppose you should go with the above posts which has been created, that would give you a better understating of JMS.
However if you are looking out for any particular thing do let us know and we would try our best to get you that stuff.
Regards,
Ravish Mody
November 25th, 2010 on 6:21 pm
Hi Ravish,
If possible plz provide me the steps to configure JMS in WL9x/10x and provide me the screenshots if possible..
Thanks & Regards,
Chandu.
November 25th, 2010 on 7:41 pm
Hi Chandu,
We usually use WLS 10.3.0 version to do all the configurations and WLS 9.x / WLS 10.x are having almost same steps which we show in WLS 10.3.0.
However can you let us know what exactly are you looking out for as in JMS there are lot of topics like configuring queue, topic etc.
Regards,
Ravish Mody
November 30th, 2010 on 1:44 pm
Hi Ravish,
How to create queues/topic,stores, servers, bridge….
I mean to say, what are the necessary configurations to be done to transfer a message from one domain to other domain using JMS.
Please provide me the steps..
Thanks,
Chandu.
December 1st, 2010 on 12:47 am
Hi Chandu,
Your wish is granted 😉
Check out the below links:
Topic: Steps to Configure Messaging Bridge on Weblogic Server
http://middlewaremagic.com/weblogic/?p=4739
Topic: JMS Demo using WebLogic Messaging Bridge
http://middlewaremagic.com/weblogic/?p=4747
Regards,
Ravish Mody
December 12th, 2010 on 3:23 pm
Hi All-
I am new to Weblogic and need your help and inputs.
As part of our integration project, below are the requirement:
1. We have to integrate IBM Maximo Application to a 3rd Party application using Oracle Service Bus (OSB) 11g as the Middleware. IBM Maximo Application is installed on top of Weblogic server version 9.2
2. Source Application IBM Maximo will enqueue a Business Message to a JMS Queue which resides within the IBM Maximo Application
3. OSB should dequeue this message, validate, transform and finally insert the data into staging tables of the 3rd Party Application
Clarifications/Inputs Required
==============================
1. Can OSB connect to JMS Queue which resides within the IBM Maximo Application? If yes can you please provide any documents/link which outlines the steps.
2. Do I need to configure a Messaging Bridge or a Foreign JNDI provider in Weblogic? Which is the best option
3. What information do we need to configure in Weblogic to connect to the JMS Queue in IBM Maximo Application?
Kindly provide your inputs.
Thanks in advance for your time and help!!
Best Regards,
Dibya
December 12th, 2010 on 9:15 pm
Hi Dibya,
First of all welcome to Middleware Magic.
To be frank we are not familiar with IBM Maximo, so can you please answers the following question so that we can understand your architecture
– What do you mean by the JMS queue resides within IBM Maximo Application? Is it capable of holding a queue within it as it seems to be just an application?
Regards,
Ravish Mody
December 12th, 2010 on 9:30 pm
Hi Dibya,
I Googled and found a link which might help you
Topic: JMS configuration for multiple independent Maximo Instances in WebLogic 9
http://www-01.ibm.com/support/docview.wss?uid=swg21418000
As far as OSB is concerened the JMS Configuration is same for OSB and WebLogic.
However if you need any specific information from weblogic side do let us know and we would try our best to help.
Regards,
Ravish Mody
December 12th, 2010 on 11:52 pm
Hi Ravish-
Its my pleasure to be a part of this wonderful group.
Answer to your question is that the IBM Maximo Application is installed on top of Weblogic Application Server 9.3.
My requirement is to integrate IBM Maximo with a 3rd Party Application using OSB 11g as the Middleware. OSB 11g is installed on top of Weblogic Server 10.3.3.0.
In order to integrate we are planning to use JMS Queue as the messaging mechanism.
IBM Maximo Application will enqueue the business message to the JMS queue that resides in the Weblogic Application Server on top of which IBM Maximo is installed.
OSB Proxy service will consume the message from this JMS queue. For this to happen, I need to know how to enable connection between the Weblogic Server 9.3 (on top which IBM Maximo is installed) and Weblogic Server 10.3.3.0 (on top of which OSB is installed).
Do we have to use:
1. Foreign JNDI Provider OR
2. Messaging Bridge OR
3. Enable Cross Domain Security OR
4. Enable Global Trust
I came to know abt Option#3 and #4 from Oracle Forums.
Please let me know your inputs.
Hoping to hear from you soon.
Please let me know if you need any additional information from my side.
Best Regards,
Dibya
December 13th, 2010 on 11:20 am
Hi Dibya,
I think in your architecture Messaging Bridge would be the best option, as in normal terms you want to send messages from one WLS version (has IBM Maximo) to another WLS version (has OSB).
Below post would help you with the complete steps to configuring Messaging Bridge
Steps to Configure Messaging Bridge on Weblogic Server
Note: Weblogic always recommends to have the Messaging Bridge on the higher version, hence in your case its WLS 10.3.3 so your architecture would be something like below
– Messaging Bridge on WLS 10.3.3
– Source Bridge Destination would be having the configuration of WLS 9.2.3 (URL, Connection Factory and Queue JNDI name which is configured on WLS 9.2.3)
– Target Bridge Destination would have the details of WLS 10.3.3 (URL, Connection Factory and Queue JNDI name which is configured on WLS 10.3.3)
Where Source would from where the messages would be picked up and Target would where the messages has to be sent.
Hope you that have answered all your questions
Regards,
Ravish Mody
January 3rd, 2011 on 1:15 pm
Hello Jay/Ravish,
Happy new year 🙂
I want to know , does weblogic deletes the files (DAT files) from file store. We had seen that these dat files grows to 2GB and then rollover.
Today when we are starting the server is production we got an exception that could not start the server as
Caused by: java.io.IOException: [Store:280036]Missing the file store file
“_WLS_ANP-LENXKSFSMANP04M-8001000000.DAT” in the directory
“/opt/fsm/domains/anp/servers/ANP-lenxksfsmanp04m-8001/data/store/default”
we have no idea how these files got deleted. There are still 3 more files starting from number 3 to 6 . However the first 2 files are missing.
To recover from this ( i.e to start ) we need to delete the existing files (LOSS of DATA) also and then start the servers.
Any comments on this behavior?
Thanks
Sumit
January 3rd, 2011 on 2:57 pm
Jay/Ravish,
In continuation with the above post. How Does weblogic controls the purging for these DAT files. I mean in our setup we are seeing at present 6 of these files each of size 2gb.
How weblogic will take care of purging.
Thanks
Sumit
January 4th, 2011 on 12:03 am
Hi Sumit,
If you are seeing drastic growth in *.DAT file size then please try to add the following JAVA_OPTION in the server start Script:
-Dcom.bea.wlw.netui.disableInstrumentation=true
-D_Offline_FileDataArchive=true
.
.
Keep Posting 🙂
Thanks
Jay SenSharma
January 4th, 2011 on 10:58 am
Jay,
We understand the file growth ( As lot of messages are coming in Queue ) .However our concern is
1) Does weblogic takes care of purging these “DAT” files?
2) If yes, then what is the strategy does it follows to purge these files. I mean in what order.
Thanks
Sumit
January 4th, 2011 on 11:43 am
Hi Sumit,
I do not think WLS deletes any .DAT files, however WLS only deletes the oldest log files if anyone uses “Limit number of retained files” for log rotation which means by default if 7 log file has be rotated then the 8th one would not be created but the 1 log would get deleted and the new 001 log would gets created which would be the 8th log if any one is had used “Limit number of retained files” and .Dat file are been generated by the different diagnostics feature which would be not related to the log scenario as above.
Regards,
Ravish Mody
January 4th, 2011 on 12:24 pm
Ravish,
It weblogic does not delete these files then once the consumer ,consumes these message then file size will reduce to zero??
Thanks
Sumit
January 4th, 2011 on 12:38 pm
Hi Sumit,
I suppose I had answered similar question of yours in the below link in point-1
http://middlewaremagic.com/weblogic/?p=1987#comment-2043
Hope that helps again 😉
Regards,
Ravish Mody
January 4th, 2011 on 12:58 pm
Ravish,
Thanks for pointing to link. Some more detailed questions.
1) In our setup we are seeing files from index 0 to 6. The first 6 files are of 2GB and the last one is 10MB. So according to our discussion in the last post, the first 6 files remain 2GB? Correct.
This is ALARMING . 12 GB disk space consumption and no way to reduce/purge
2) Moreover if we delete any of these file then server is not starting . It states that file is missing.
3) Even we try to delete files from last index then we may not be sure weather the messages from this files are consumed or not
I know some of them may be internal to WL and may not be answerable.
Thanks
Sumit
January 4th, 2011 on 3:13 pm
Hi Sumit,
You can check the below OTN link to try out the suggestion to reduce the file for question 1
http://forums.oracle.com/forums/message.jspa?messageID=9257032#9257032
Ans-2
If you delete the files manually then you also suggest you to create a fresh new files with the same names in the same directory so that when the next time server starts atleast the server would get the files at its place.
Ans-3
I dont think we can make out if any messages are still in the filestore or not, may be using the dump command and passing that dump file to the engineer team might help, but that would be a log shot
Regards,
Ravish Mody
January 4th, 2011 on 4:18 pm
Ravish,
So what is the best way to deal with these many file store problems in the production. I dont how to deal with the questions from client now. They are top of my head
1) As We cannot delete the file store
2) They are consuming the disk space
3) If we delete the oldest file then server start will fail
4) If delete all the files then we are loosing the messages
Is this a WL BUG , that even after processing the messages it cannot reduce the file size and cannot delete the old file store?
Thanks
Sumit
January 4th, 2011 on 7:12 pm
Hi Sumit,
As you have already found a related BUG 8186074 which can be used in WLS 10.3.1 then I would suggest go to the support team and ask them to give you a patch by back porting this bug
Regards,
Ravish Mody
January 6th, 2011 on 3:58 pm
Hi Joy/Ravish,
I have an application deployed under the admin server of domain1.
I have a queue and a connection factory configured and targeted to admin server of domain2
My requirement is when I run the application of domain 2, jsp page of the app asks for message and runs the internal Queue Send program.
This Queue Send program should connect to the remote Queue of domain1 and send a message.
I would appreciate if you could share QueueSend program with me in such scenario.
I have a QueueSend progrma, which connects to the queue of the same domain and sends the message.
InitialContext ic = new InitialContext();
qconFactory = (QueueConnectionFactory) ic.lookup(“ConnectionFactory1”);
qcon = qconFactory.createQueueConnection();
qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
queue = (Queue) ic.lookup(“Queue1”);
qsender = qsession.createSender(queue);
msg = qsession.createTextMessage();
qcon.start();
msg.setText(message);
qsender.send(msg);
January 6th, 2011 on 4:18 pm
Hi Arun,
Try to create the InitialContext like following:
.
.
Keep Posting 🙂
Thanks
Jay SenSharma
January 6th, 2011 on 5:48 pm
Hi Ravish/Jay,
We are facing problems in weblogic 9.2 version with the messages going to “Receive” state and pending in the JMS queue.
Have two queries:
1) Why the messages have gone into “Receive” state?
2)Is there a way to make the message consumed by the MDB without restarting the application server?
Thanks in advance.
-Shunno
January 6th, 2011 on 7:07 pm
Hi Shunno,
When a messages goes to received state then that means the message is pending because it has been received by a consumer but not yet acknowledged. This usually happens because of wrong coding or network issue.
These type of issues are really bad as because the message is already been consumed by the consumer and if we some how resend it then that would be a duplicate messages which can cause issues if your process is dependent on messages which is been received. However you can try setting the error queue to resend the messages again check out the below post that would surely help you.
Topic: Steps to Configure Error Queue on Weblogic Server
Regards,
Ravish Mody
January 6th, 2011 on 7:22 pm
Hi Joy bhaiya,
Thanks for the reply, it works 🙂 🙂
I got a reply within 20 minutes, middlewaremagic rocks.
Regards,
Arunbaalajee R
February 25th, 2011 on 3:34 pm
Hi,
an someone help here with JMS stuff ?
I’m unable to create a new distributed JMS-topic on WL10.3 version.
Here the error i’m seeing when i try to activate the changes:-
Messages
An error occurred during activation of changes, please see the log for details.
[Management:141191]The prepare phase of the configuration update failed with an exception:
VALIDATION PROBLEMS WERE FOUND problem: cvc-enumeration-valid: string value ‘No-Delivery’ is not a valid enumeration value for delivery-mode-type in namespace http://www.bea.com/ns/weblogic/weblogic-jms:
Let me know if need any information from me..
Thanks
Kiran
February 25th, 2011 on 6:11 pm
Hi Kiran,
I would suggest you to have a look at the below link and follow the steps to create a uniform distributed topics on WLS 10.3.0, I am assuming that you might have missed out some steps do to which you are getting the issue.
Topic: Configure uniform distributed topics
Let us know after following those steps if you still face the same problem.
February 25th, 2011 on 6:56 pm
Yep – followed the same steps according to the document.
Anyways , let me brief here my steps :
Note : I’ve already a JMS Module , so I’m creating uniform distributed “topic” under my jms-module , – and we have also other couple of uniform distributed topics wwithin my jms-module which were working fine.
Steps that i’ve applied for creating new uniform distributed topic:
1. Lock & Edit
2. Click on Service > Messaging > JMS Module
3. Click on my JMS-Module name
4. Click on button “new”
5. Select the radio button “distributed topic” , Next
6. Name of my new topic
7. JNDI name
Note : -“Allocate Members Uniformly” check box will be in selection by defauly
8. Next
9.Click on “Advanced Targetting” button , though i have sub-deployment to mention.
10. Select the sub-deployment from the drop-down list
11. Select the target servers
12.Click “finish”
13. Click on “activate changes”
Now immediately i was thrown with errors like –
Messages
An error occurred during activation of changes, please see the log for details.
[Management:141191]The prepare phase of the configuration update failed with an exception:
VALIDATION PROBLEMS WERE FOUND problem: cvc-enumeration-valid: string value ‘No-Delivery’ is not a valid enumeration value for delivery-mode-type in namespace http://www.bea.com/ns/weblogic/weblogic-jms:
Let me know if you need any other information.
Thanks
Kiran
February 25th, 2011 on 8:41 pm
Hi Kiran,
I also followed the same exact steps as you have mentioned and was able to configure an uniform distributed topic (UDT).
Now would like you to check few things in your configuration:
1) Check if both the managed servers are in cluster and each servers are targeted to different JMS servers (MS-1 -> JMSserver-1, MS-2 -> JMSserver-2 )
2) Check if the jms-module is been targeted to the cluster.
3) Check if the sub-deployments are been targeted on the JMSservers
Also from the error messages it seems that there might be an issue with Delivery Mode Override = No-Delivery which can be found in the below console path, so try to set it some different value like Non-Persistent and then try to Activate Changes in your existing configuration.
Path:
Services -> JMS Modules -> YOUR_JMS_MODULE_NAME -> YOUR_UDT_NAME -> Configuration [tab] -> Overrides [sub-tab]
February 26th, 2011 on 12:54 pm
Jay/Ravish
I have a question on sample code that are being used in the above examples. All the sample code take url as input and connect to the server. There is no username/password authentication .
SO this means any one can connect to sever (provided knows the JNDI name) and can miss use the JMS Resources?
Thanks
Sumit
February 26th, 2011 on 5:21 pm
Hi Sumit,
Please refer to the following post: http://middlewaremagic.com/weblogic/?p=5875 To know what must be done before moving to production. Most of the Administrators are not aware of this fact that their WebLogic Server is not safe from attacks mentioned in the above post.
.
.
Keep Posting 🙂
Thanks
Jay SenSharma
February 26th, 2011 on 11:48 pm
Jay/Ravish,
The server startup takes more time if there are persistent file size is significant ( more than 1GB).
During server start up the server initializes the JMS and i think it try to read all the data from the file.
Is there any way to say the WL MS that during server startup don’t read the data from persistent file. Once it has comes up in Running mode then only start reading data.
Why i am asking this because. In production due heavy traffic we have always 2-3 dat files with almost 2GB all. If we have to restart the server then server start takes around 45 minutes to 1 hrs. So as WA we always need to delete the persistent store and then start the server so that server start can be fast.
Is there any to over come this?
Thanks
Sumit
February 27th, 2011 on 2:56 pm
Hi Sumit,
Yes, This is a very common issue which most of the guys face it. However other then deleting the store I think there is no other way to deal with this kind of issues. You can try with reducing the size of the file store but I dont think that would help much. Its not recommended to delete the store or else you would lose all the messages and other details on it.
The best way to deal with this kind of issues to make sure all the messages are been read properly and make sure you give that much load to the server as much it can take it or else use quota and flow control on the messages to avoid generating larger file stores.
March 10th, 2011 on 6:28 pm
Hi Ravish,
Here is my very basic doubt:
Please tell me in what all scenerios I can get “unable to lookup QCF” ??
Note:
I have applied security on jms module and also passed credentials while creating connections.
Please let me know what can be the scenerios??
March 10th, 2011 on 9:01 pm
Hi Vidhan,
If the JNDI name “QCF” is binded properly in the JNDI tree of a Server. AND if the JNDI lookup code is written properly then there is no reason in which the lookup will fail. In case of Securing the JNDI access the lookup client must make sure that it passes the right credentials while making a lookup call.
To know more on how to do a lookup when the JNDI name is secured please refer to :
http://middlewaremagic.com/weblogic/?p=5875
.
.
Keep Posting 🙂
Thanks
Jay SenSharma
March 24th, 2011 on 11:22 pm
Hi,
We have SOA application hosted on wls 10.3.The problem is,whenever we try to view the JNDI tree from the Admin console,we are unable to view the JNDI tree structure and more importantly the Admin server suddenly becomes down.
This issue replicates whenever we try to viw the JNDI tree under the managed server from administration console.Pls note,JMS server is configured on MS alone.Can you please help me ragarding this issue?
Thnx,
Adrian.
March 26th, 2011 on 11:33 pm
HiGuys,
We have a requirement to create few numbers say 10 -12 JMS store for the JMS servers using WLST, can you guys help me in creating one.
Thanks in advance,
roberto
March 27th, 2011 on 10:08 pm
To create persistent store for JMS you can use the following:
To create a JDBC store goes along the same lines, for example,
Note that the use of a filestore gets you the best performance.
To create scripts you can also use the record button present in the WebLogic Console. When you click record you can do the stuff you want to and when you are finsihed with the configuration, you click record again.
March 29th, 2011 on 11:11 pm
Rene you are the MAN..!!!!
Thank you so much for your quick reply
Thanks
April 3rd, 2011 on 2:46 pm
Hi Jay,
If possible, could you please address my above post?
Thanks.
April 3rd, 2011 on 7:05 pm
Hi Adrian,
Actually to understand the root cause of the above behavior of WLS we need to keenly analyze the complete server logs of both Admin as well as Managed Server. Because this kind of issue requires a very detailed analysis. The JNDI tree navigation of Managed Server should never cause the Admin Server Shutdown. Will it be possible for you to please send us the Server log of both ManagedServer as well as AdminServer at contact@middlewaremagic.com
Also can you please send us the config.xml and the JMS related XML files as well….. which are usually placed inside “<DOMAIN_HOME>configjms” directory.
.
.
Keep Posting 🙂
Thanks
Jay SenSharma
April 18th, 2011 on 12:35 pm
Hi All,
How to check active and inactive requests in a Websphere MQ queue manager by giving a command. Is there any command to excute in backend. Please help me out.
May 8th, 2011 on 3:50 am
Hi,
MDB (Consumer) gets fired whenever a message arrives in a Topic. My question is in my onMessage() method of mdb is there a way to check how many messages are in pending state of the topic or what is the total number of messages in the topic which are yet to be consumed.
Thanks
May 8th, 2011 on 9:22 am
Hi Mash,
As onMessage() will be invoked every time it listens to a JMS Message, So it is not advisable to write the JMS monitoring code inside it …Still if you want to do it then please add the JMX code which is mentioned inside onMessage() of your code from the following link:
http://middlewaremagic.com/weblogic/?p=100
As an alternative you can use WLST option to do the same monitoring:
1). http://middlewaremagic.com/weblogic/?p=4931
And
2). http://middlewaremagic.com/weblogic/?p=5177
.
.
Keep Posting 🙂
Thanks
Jay SenSharma
May 28th, 2011 on 11:09 am
Hi Magic Team,
Need your expert advise on the problem which we are facing in our application deployed in Weblogic cluster (2 managed servers). The application receives interface messages from external systems via websphere MQ. APplication also has GUI, with any user update can trigger message to external applications via Websphsere MQ. The incoming messages throguh MQ’s are routed to the application through Messaging bridges with destination as JMS queues which will be again listened by MDB’s deployed in the managed server. Outgoing messages (due to GUI updates) will be posted in topics, which will be connected a messaging bridge with target as websphere MQ. The incoming messages need to be processed in strict order, hence we have configured the messaging bridge, JMS Queues/Topics in only one managed server MS1. In other words all incoming interfaces from external systems are connected to one managed server MS1, but the GUI is connected to both the servers in the clusrter MS1 & MS2 (through webserver load balancing). Any updates done through GUI has to be processed by one of the managed servers (MS1/MS2), and the corresponding message delivery to external systems should be handled by MS1.Hence some of the JMS modules (for handling outgoing messages), should be available for clients in both managed servers. To summarize, application GUI will talk to both managed servers MS1/MS2, but the system to system interfaces (either incoming/outgoing) has to be handled by one managed server MS1 due to strict ordering of the messages.
So we are not using load balancing capabilites of cluster as far as JMS modules are concerned, but we want to use the failover facility. So when MS1 fails for whatever reason our JMS modules, messaging bridges handling incoming & outgoing interface messages should automatically be migrated to MS2.
We tried using Migratable targets, through the below steps
1) Created a Migratable target with preferred server as MS1.
2) Created a JMS server “JMS-server1” targeted to Migratable target
3) Created a JMS module “JMS-module1” targeted under the JMS server
4) CReated the JMS resources QUeue/topic/CF with a sub deployment targeted to JMS server “JMS-server1”
But we noticed that we create a messaging bridge, weblogic console does not list the Migratable target in the list of targets, we are only shown the admin server & the managed servers in the cluster. Is there any other set up which we have to do to get the migratable targets in the list of targets for messaging bridge ?
Will the use of Migratable target solve our requirement stated above ? Please help
Thanks, Rajkumar
May 28th, 2011 on 11:21 am
Hi,
Below are the environment details of our application
Weblogic – 10.3.3.0 version
Java – 1.6
Host – AIX
Database – Oracle 11GR2
THanks, Rajkumar
May 28th, 2011 on 6:04 pm
Hi Rajkumar,
This is a known issue/ Bug in Weblogic server which has been fixed in WLS 10.3.4 version following are the details
Bug: 8617285
Component: Administration Console
Fixed Version: 10.3.4
Description: JMS Message Bridges cannot be targeted to Migratable Targets via the Administration Console.
Hence would suggest you to open a ticket with Oracle Weblogic Support team and as them to give you a patch for your weblogic version.
Regards,
Ravish Mody
May 29th, 2011 on 6:18 pm
Hi Ravish,
Thanks a lot for the reply. Will check with weblogic support for the patch.
Have another query on the messaging bridge’s destination. As mentioned in earlier quote, the messaging bridge’s destination is a JMS Queue targeted to Migratable target (with preferred server as MS1). We have configured the URL of MS1 (t3://WLSIFWS1:7011) in the Connection URL parameter of the JMS Bridge destination. In case of a failure to MS1 & the messaging bridge in question is targeted to a migratable target, will weblogic be able to automatically change this connection URL to point to MS2 (t3://WLSIFWS2:7011) ?
Thanks, Rajkumar
June 8th, 2011 on 12:07 pm
Hi Ravish,
Need your expert advise for my query related to Messaging bridge target.
Thanks a lot for your help
Thanks, Rajkumar
September 7th, 2011 on 4:28 pm
HI Jay,
I have an application which is a combination of Java and Workflow. Java part is deployed in one weblogic server (11g) and workflow part is deployed in another weblogic server (10g). The workflow is able to send messages to the JMS queue of the other server but unable to receive the message from the server correctly.
We encounter the following exception
by: java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[ak10.o.r, CC3500, akumar@xxx.com, ……]
Can you kindly let me know if this issue can be solved by enabling global trust between two weblogic domains?
Also,I read in Oracle documents that enabling global trust will pose the domain to middle man attack. Can you suggest if this can be implemented??
Thanks,
Charan
September 7th, 2011 on 6:22 pm
Hi Charan,
As some part of your application is deployed on WebLogic 11g Domain and some part of it is deployed on WebLogic 10g so for proper communication between these two domains you need to enable the “Domain Trust” between these two domains …Please refer to the following link:
http://download.oracle.com/docs/cd/E15051_01/wls/docs103/ConsoleHelp/taskhelp/security/EnableGlobalTrustBetweenDomains.html
*** NOTE: Make sure that while enabling Domain trust you are providing the same Common Credentials in the admin-Console of both the domains.
.
.
Keep Posting 🙂
Thanks
Jay SenSharma
October 12th, 2011 on 8:04 pm
Hi Gurus,
I have a requirement to read messages from remote queues( external system MQ Series)from OSB and pass it on to Siebel WS.
I need to know in order to read read the messages from MQ remote queues, using weblogic should i go for :
1.JMS Bridge
2. Foreign JMS provider
which one is better and why ??
what ever option we follow i need to place the read message to local queue (weblogic/domain),so that OSB would poll for local queues and pass the message to Siebel WS for processing
Is there any better approach other than this ..hopefully wd be …
plz suggest and correct me !!
Abhinav Gupta
October 12th, 2011 on 10:38 pm
Hi Abhinav,
In your scenario I think the second option which is Foreign JMS provider would be a good option and this is because it would create a local connection factory and destination objects in WebLogic Server JNDI and when the OSB would pull the messages then internally foreign JMS provider would actually connect and do the lookup on the remote JNDI directory, this way you would achieve your requirement.
More information on it can be found in the below link which might help you further
Topic: Configuring Foreign Server Resources to Access Third-Party JMS Providers
http://download.oracle.com/docs/cd/E12840_01/wls/docs103/jms_admin/advance_config.html#wp1075917
Regards,
Ravish Mody
October 13th, 2011 on 12:37 am
Hi Ravish ,
As per your reply to Dibya on 13 Dec 2010,u have suggested to use Bridge instead of Foreign Provider as in that case weblogic is used for source and destination.
But Bridge documentation suggest
http://download.oracle.com/docs/cd/E12840_01/wls/docs103/bridge/basics.html
integrating WebLogic JMS and a third-party JMS product (for example, MQSeries) also ..
if u can further help me out it plz !!
Regards,
Abhinav Gupta
October 13th, 2011 on 10:34 pm
Hi Abhinav,
I had suggested Messaging Bridge to Dibya because in her scenario the communication was between two WLS domains, however in your scenario its WLS and IBM MQ and you wanted to get the messages locally or I might have misunderstood your question.
To be more precise on your question when to use what I believe below links would surely help you out as it tell you when to use in which scenario’s
Topic: Using Foreign JMS Server Definitions
http://download.oracle.com/docs/cd/E12840_01/wls/docs103/jms/interop.html#wp1009750
Topic: Using a Messaging Bridge
http://download.oracle.com/docs/cd/E12840_01/wls/docs103/jms/interop.html#wp1009942
However in any scenario’s it’s up to once opinion which one is best going with there requirement and environment which I believe is important and differs. Hope this might help you to make your decisions and if you still have any droughts do share with us and we would try our best to clear them out 🙂
Regards,
Ravish Mody
October 13th, 2011 on 11:35 pm
Hi Ravish,
I appreciate your help and concern …
I my question i forgot to mention the other flow that need to be considered..
I have told only the one way process of Deqeuing the messages from Foreign JMS (Remote Queues ) and passsing it to Siebel WS via OSB .
But i also need to enqueue the respective responses from Siebel WS back to different Remote Queues(Foreign JMS) via OSB .
SO considering both the flows which one(JMS Modules or Bridge) would be used keeping in concern with OSB …
So which one would be better !!
I am new to it so would like to know the best way around!!
Plz suggest !!
Abhinav
October 14th, 2011 on 12:15 am
Hi Abhinav,
Your scenario is surely complex 🙂 You can trying to consume messages from A (i.e. MQ) and want to send it to C (i.e. Siebel WS) that to via B (i.e. OSB) and in responses C sends responses to D (i.e. different Remote Queues) via B.
I would suggest you to do involve your architecture team, however you can use any of them (Bridge or Foreign messaging ) or combination of both too, but as given in the previous links depending if your consumer is on or not and you want your messages to be deliver then choose Bridge or else foreign messaging and other factors also hence involving your architecture team would be a good idea.
Regards,
Ravish Mody
October 14th, 2011 on 9:50 pm
Hi Ravish,
Thanks for the clarification !!
Regards,
Abhinav Gupta
January 26th, 2012 on 12:21 am
Hi Middleware Team,
The foreign JMS server is not receiving messages when I restart the producer weblogic server. I mean how to get app to recover its connection automatically to the foreign jms server automatically if the app server producing the messages fails and is restarted?.
The error is
weblogic.jms.common.JMSException: [JMSClientExceptions:055053]Error creating connection to the server: java.rmi.ConnectException: This RJVM has already been shutdown
March 13th, 2012 on 10:33 pm
Hi experts, I have a question regarding JMS architecture.
We’re going to deploy a new app using JMS but all the messaging architecture will be on WebshereMQ.
Our middleware team recommends us to create a foreign server to communicate with MQ.
So my question is quite simple, why using a Foregin server instead of a JMS Bridge?
I’d have used the latter as it aims to communicated with other Message Oriented Middleware.
Thanks for your wise advices
March 15th, 2012 on 1:56 am
Hi fipnova,
Foreign JMS server symbolic link between a JNDI object in a remote JNDI directory,
such as a JMS connection factory or destination object, and a JNDI name in the JNDI name space for a stand-alone WebLogic Server or group of weblogic servers.
Messaging bridges are administratively configured services that run on a WebLogic server. They automatically forward messages from a configured source JMS destination to a configured target JMS destination.
messaging bridges are used to provide store-and-forward high availability design requirements. A messaging bridge is configured to consume from a sender’s local destination and forward it to the sender’s actual target remote destination. This provides high availability because the sender is still able to send messages to its local destination even when the target remote destination is unreachable. When a remote destination is not reachable, the local destination automatically begins to store messages until the bridge is able to forward them to the target destination when the target becomes available again.
You use adapters for message bridge.
April 4th, 2012 on 9:27 pm
Hi All,
can any one tell me how to get these parameters from from loacl or dev JMS server?
1) JMS Name and Description
2) Names of Agile users to be notified if a transfer failure occurs.
3) Parameter Values for Provider Context Factory, Connection Factory, and Default Provider URL.
Please note that the Agile PLM system fills in the fields with server-specific defaults but we must validate they are accurate.
4) User Name and Password to access the queue
July 20th, 2012 on 11:13 pm
Hi Ravish, I have a question about uniform distributed topic.
Below are my observations for using Error topic for Uniform Distributed Topic (UDT) –
1. Error topic for a UDT has to be a UDT, in the same subdeployment.
2. It is not possible to create a durable subscriber for UDT from WLS console – there is no create button.
We need durable subscriber to persist error messages. So as a work around I have created a dummy SOA process as a subscriber to the error UDT and turned the SOA process off.
Do you have an idea if we can avoid creation of dummy subscriber and still persist messages in error topic (UDT) for distributed env?
July 22nd, 2012 on 12:54 pm
All the information you need on WebLogic JMS: http://docs.oracle.com/cd/E21764_01/web.1111/e13738/toc.htm
something on durable subscribers: http://docs.oracle.com/cd/E21764_01/web.1111/e13727/manage_apps.htm#JMSPG290
With the publish-and-subscribe model, the message producer creates a message and sends it to a destination known as a topic. Messages sent to topics can be persistent or non-persistent. Messages sent, or published, to a topic are delivered only to the active consumers, also known as subscribers, which have registered their interest, or subscribed, to messages sent to the topic. Subscriptions can be either durable or nondurable. When a consumer subscribes to the topic, that subscriber will receive messages sent only during the lifetime of that subscription. A nondurable subscription will never last longer than the subscriber’s JMS connection. In contrast, a durable subscriber can disconnect. Once the subscriber reconnects, it will receive all messages published since it disconnected: Note that message persistence may affect the availability of previously published messages in the event of server failures, depending on the JMS provider. The JMS provider will save a message until one of the following events occurs:
– All subscribers successfully process the message. A nondurable subscription ends when the subscriber disconnects. A durable subscription ends when the subscriber calls unsubscribe() or specifies a new selector.
– The message time-to-live expires.
– If the message is non-persistent, the server on which the topic resides shuts down or fails.
– The topic is deleted.
A topic’s message consumers are usually called subscribers. When subscribing to a topic, you can create either a durable or nondurable subscription. Nondurable subscriptions are valid only from the time that you create them until the time you either unsubscribe or otherwise disconnect from the messaging system. This means that any failure that disconnects the application will automatically terminate the subscription. When you resubscribe, any messages sent between the time that you were disconnected and you resubscribed will not be delivered – even if the message’s delivery mode is persistent. In many situations, this is the desired behavior; if it is not, you need to use a durable subscription. Note that JMS creates nondurable subscriptions by default unless you explicitly invoke one of the createDurableSubscriber() methods on the session object.
With durable subscriptions, the subscriber provides a unique identifier to identify the subscription. Once the subscription is accepted, the messaging system will try to deliver all messages it receives to the durable subscriber. If the subscriber disconnects without unsubscribing, the JMS provider will buffer all of the messages the subscriber has not seen until the subscriber returns. If the delivery mode is non-persistent, the messages are buffered in memory and thus subject to message loss during failures.
A distributed topic producer always sends each message to a single member topic. The member topic then forwards the message to all other member topics. If you publish messages directly to the member topic, WebLogic JMS will still replicate the messages to every member of the distributed topic, just as it would if you had published the messages to the distributed topic itself. This means that any topic associated with a distributed topic will distribute messages just as the distributed topic does. It is important to note that distributed topic producers maintain an affinity to a member topic after they send their first message. This affinity overrides any load balancing settings on the connection factory. They will, however, failover to another member topic in the event of failure. When this happens, the producer pins itself to the new member for future messages. Persistent messages sent to a nondistributed topic are not actually persisted unless there are one or more durable subscribers. For distributed topic members, the message is always persisted before forwarding on to other member topics. When a message arrives at a topic, the topic will do one of three things for each of its subscribers:
– If the message was originally sent before the subscription was created, WebLogic JMS will not deliver the message to the subscriber.
– If the subscriber is currently connected and the subscription existed when the message was originally sent, WebLogic JMS will deliver the message to the subscriber.
-If the durable subscriber is not currently connected but their subscription existed when the message was originally sent, WebLogic JMS will buffer the message waiting on the subscriber to reconnect so that it can deliver the message.
Topics that are members of a distributed topic perform additional actions.
– If the message came directly from a message producer (as opposed to being forwarded from another distributed topic member), the member topic will forward the message to all other distributed topic members.
– If any of the distributed topic members are down, WebLogic JMS will buffer the message until one of three things happens: it delivers the message to all member topics, the message expires, or the remaining member topics are removed from the distributed topic. This buffering happens for both persistent and non-persistent messages.
As you can imagine, this buffering is not always desirable. One way to prevent the unbounded accumulation of these buffered messages is to set message expiration times.
Any durable subscriptions must be made directly with a distributed topic’s member destinations. WebLogic JMS does not support creating a durable subscription on a distributed topic directly. This is unfortunate because although it does not prevent you from building an application that leverages distributed topics with durable subscribers, it does make it more difficult. In most cases, the subscriber must look up one of the member topics directly. The WebLogic Server documentation lists two approaches that applications can use to handle this situation:
– Give each member topic a unique JNDI Name and have the durable subscribers use those JNDI names to look up the member topic explicitly. Note that the JNDI Name attribute binds the member topic into JNDI and WebLogic Server replicates that binding across the cluster.
– Give each member topic the same Local JNDI Name so that the durable subscribers use the same JNDI name to look up the member topic and will always get the one on the local server to which they are connected. Note that the Local JNDI Name attribute allows you to specify a JNDI name that is not replicated across the cluster.
Both of these approaches have serious drawbacks for remote subscribers. For example, the first approach makes it easy for durable subscribers to reconnect to the appropriate member topic but requires subscribers to understand the current topology of the cluster and invent their own mechanisms to ensure load balancing and server affinity. The second approach tries to hide the cluster topology but at the expense of making it easy for the consumer to reconnect to their existing durable subscription. That is, because the durable subscription is associated with the member topic and each member topic has the same JNDI name, the subscriber has to invent its own mechanisms to reconnect to the same cluster member to find the durable subscription. You might decide to solve this problem by using one JMS connection factory per member topic. However, this causes exactly the same problems and options. At the end of the day, you end
up needing to build load balancing and failover machinery into the application. We feel that this makes remote durable subscribers on distributed topics too complex and recommend that you avoid their use.
Fortunately, things are much better if the durable subscribers are server-side components deployed in the same cluster. In fact, WebLogic Server’s MDB container actually allows an MDB to specify the JNDI name of a local distributed topic when creating a durable subscription. The container simply determines the correct member topic for the local managed server and creates the durable subscription against it.
Message-driven bean (MDB) deployments are treated as a single consumer per member topic. This means that regardless of how many MDB instances are in the pool on each server, messages will be sent to a single MDB instance for each member topic. If you stop to think about it, this is desirable because the whole
idea of deploying an MDB is to create one virtual consumer per deployment. You probably do not want each message sent to the topic to be processed by multiple MDB instances in the same server. Where this becomes less clear is when you think about deploying an MDB to a cluster using a distributed destination. In some cases, you might actually want each message processed in each server; in others, it might be desirable to process each message once across the entire cluster.
Related to this, it is important to note that WebLogic JMS requires all durable subscribers connected to a cluster to have a unique client identifier. This client identifier is what uniquely identifies the durable subscription. To make it easier to deploy MDB durable subscribers, WebLogic Server’s MDB container supports a generate-unique-jmsclientid element in weblogic-ejb-jar.xml that tells the server to generate unique durable subscriber client identifiers automatically for each MDB deployment. This capability, when combined with the ability to use the distributed topic as the target destination for the MDB, makes it easy to deploy an MDB that acts as if it were a durable subscriber to a distributed topic. The only reasonable way to use durable subscriptions in combination with distributed
topics is to use MDB durable subscribers where the MDB is deployed to the same cluster as the distributed topic.
July 23rd, 2012 on 10:37 pm
Thank you René van Wijk.It is really a great help and nice explanation. So can i set generate-unique-jmsclientid for a topic?
July 24th, 2012 on 11:59 am
On the message-driven bean that uses the topic. See also here (http://docs.oracle.com/cd/E15051_01/wls/docs103/ejb/DDreference-ejb-jar.html#wp1397207) for an explanation on its function.
August 29th, 2012 on 1:37 am
Hi Middleware Magic Team,
I am using the below script to get all the jms active connection,but we are getting the exception,when running the script.I want to ignore the exception and want to continue the script.
It is running fine for some jms servers but getting failed for some.The exception is acceptable beacuse the time when we are triggering the script some connections get deleted.
The count of active connection is about 1500.
So,some of the active connections are getting deleted till that jms connection turns come.
I want to ignore the exception and continue with the rest of the connections.
I used exitonerror =false in the script but not getting success.
Please help how I can handle the exception here.
Script:-
_________________________________
connect(‘weblogic’,’H0stn3m1′,’t3://localhost:12001′)
domainRuntime()
cd(‘/ServerRuntimes/wls02v-ut/JMSRuntime/wls02v-ut.jms/Connections’)
count=0
count1=0
allcon=cmo.getConnections()
for tmpcon in allcon:
conName=tmpcon.getName();
cd(‘/ServerRuntimes/wls02v-ut/JMSRuntime/wls02v-ut.jms/Connections/’+conName)
a=cmo.getClientID()
print(a)
if (a!=None):
print(“connection Name:”,conName)
count=count+1
else:
count1=count1+1
print(“Connection Name having Null clientid is:”,conName)
print(“Total connection whose clientid is not null = :”,count)
print(“Total no. of connection having clientid is ‘null’=”,count1)
count3=count1+count
print(“Total no. of active connection”,count3)
exit()
_________________________________
Output:-
_________________________________
java weblogic.WLST /export/home/weblogic/DS01_jms_activecount.py
Initializing WebLogic Scripting Tool (WLST) …
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
Connecting to t3://fltciohppwlc01v.comfin.ge.com:12001 with userid admin …
Successfully connected to Admin Server ‘pwlc01v-ds’ that belongs to domain ‘dsdomain’.
Warning: An insecure protocol was used to connect to the
server. To ensure on-the-wire security, the SSL port or
Admin port should be used instead.
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
For more help, use help(domainRuntime)
None
(‘Connection Name having Null clientid is:’, ‘connection63666’)
None
(‘Connection Name having Null clientid is:’, ‘connection153180’)
None
(‘Connection Name having Null clientid is:’, ‘connection66123’)
None
(‘Connection Name having Null clientid is:’, ‘connection55890’)
None
(‘Connection Name having Null clientid is:’, ‘connection161574’)
None
(‘Connection Name having Null clientid is:’, ‘connection61941’)
None
(‘Connection Name having Null clientid is:’, ‘connection73671’)
None
(‘Connection Name having Null clientid is:’, ‘connection222455’)
This Exception occured at Tue Aug 28 08:53:11 EDT 2012.
javax.management.InstanceNotFoundException: com.bea:ServerRuntime=pwls01v-ds,Name=connection225064,Type=JMSConnectionRuntime,JMSRuntime=pwls01v-ds.jms
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:215)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:224)
at javax.management.remote.rmi.RMIConnectionImpl_923_WLStub.getAttribute(Unknown Source)
at weblogic.management.remote.common.RMIConnectionWrapper$11.run(ClientProviderBase.java:526)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.security.Security.runAs(Security.java:61)
at weblogic.management.remote.common.RMIConnectionWrapper.getAttribute(ClientProviderBase.java:524)
at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:857)
at weblogic.management.scripting.BrowseHelper.populateNames(BrowseHelper.java:98)
at weblogic.management.scripting.BrowseHandler.regularPush(BrowseHandler.java:433)
at weblogic.management.scripting.BrowseHandler.splitPush(BrowseHandler.java:139)
at weblogic.management.scripting.BrowseHandler.cd(BrowseHandler.java:629)
at weblogic.management.scripting.BrowseHandler.cd(BrowseHandler.java:612)
at weblogic.management.scripting.WLScriptContext.cd(WLScriptContext.java:195)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:160)
at org.python.core.PyMethod.__call__(PyMethod.java:96)
at org.python.core.PyObject.__call__(PyObject.java:270)
at org.python.core.PyObject.invoke(PyObject.java:2041)
at org.python.pycode._pyx19.cd$5(:161)
at org.python.pycode._pyx19.call_function()
at org.python.core.PyTableCode.call(PyTableCode.java:208)
at org.python.core.PyTableCode.call(PyTableCode.java:267)
at org.python.core.PyFunction.__call__(PyFunction.java:172)
at org.python.pycode._pyx18.f$0(/export/home/weblogic/DS01_jms_activecount.py:9)
at org.python.pycode._pyx18.call_function(/export/home/weblogic/DS01_jms_activecount.py)
at org.python.core.PyTableCode.call(PyTableCode.java:208)
at org.python.core.PyCode.call(PyCode.java:14)
at org.python.core.Py.runCode(Py.java:1135)
at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:167)
at weblogic.management.scripting.WLST.main(WLST.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at weblogic.WLST.main(WLST.java:29)
Caused by: javax.management.InstanceNotFoundException: com.bea:ServerRuntime=pwls01v-ds,Name=connection225064,Type=JMSConnectionRuntime,JMSRuntime=pwls01v-ds.jms
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:215)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:224)
at javax.management.remote.rmi.RMIConnectionImpl_923_WLStub.getAttribute(Unknown Source)
at weblogic.management.remote.common.RMIConnectionWrapper$11.run(ClientProviderBase.java:526)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.security.Security.runAs(Security.java:61)
at weblogic.management.remote.common.RMIConnectionWrapper.getAttribute(ClientProviderBase.java:524)
at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:857)
at weblogic.management.mbeanservers.domainruntime.internal.ManagedMBeanServerConnection.getAttribute(ManagedMBeanServerConnection.java:281)
at weblogic.management.mbeanservers.domainruntime.internal.FederatedMBeanServerInterceptor.getAttribute(FederatedMBeanServerInterceptor.java:227)
at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase$12.run(WLSMBeanServerInterceptorBase.java:320)
at java.security.AccessController.doPrivileged(Native Method)
at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.getAttribute(WLSMBeanServerInterceptorBase.java:318)
at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase$12.run(WLSMBeanServerInterceptorBase.java:320)
at java.security.AccessController.doPrivileged(Native Method)
at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.getAttribute(WLSMBeanServerInterceptorBase.java:318)
at weblogic.management.mbeanservers.internal.SecurityInterceptor.getAttribute(SecurityInterceptor.java:281)
at weblogic.management.mbeanservers.internal.AuthenticatedSubjectInterceptor$5$1.run(AuthenticatedSubjectInterceptor.java:297)
at java.security.AccessController.doPrivileged(Native Method)
at weblogic.management.mbeanservers.internal.AuthenticatedSubjectInterceptor$5.run(AuthenticatedSubjectInterceptor.java:295)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.management.mbeanservers.internal.AuthenticatedSubjectInterceptor.getAttribute(AuthenticatedSubjectInterceptor.java:290)
at weblogic.management.jmx.mbeanserver.WLSMBeanServer.getAttribute(WLSMBeanServer.java:269)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1387)
at javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1247)
at java.security.AccessController.doPrivileged(Native Method)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1350)
at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:599)
at javax.management.remote.rmi.RMIConnectionImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:553)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:443)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:439)
at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:61)
at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:983)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
Caused by: javax.management.InstanceNotFoundException: com.bea:ServerRuntime=pwls01v-ds,Name=connection225064,Type=JMSConnectionRuntime,JMSRuntime=pwls01v-ds.jms
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1010)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:627)
at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:659)
… 29 more
Problem invoking WLST – Traceback (innermost last):
File “/export/home/weblogic/DS01_jms_activecount.py”, line 9, in ?
File “”, line 170, in cd
WLSTException: ‘Error cding to the MBean’
you have mail in /usr/mail/weblogic
_________________________________________________
Please help.
Thanks,
Ravi Shankar Kumar.
October 10th, 2012 on 3:26 pm
Hi,
I have written a JAVA JMS Sender code which is successfully sending the message to the destination queue and the Java Receiver code is also picking up the message successfully. But the problem is after sending the message I cannot view it from the weblogic webconsole in the SystemModule > Queue > Monitoring page.
No information like Consumers Current, Consumers High, Consumers Total etc are displayed. The table remains blank completely.
Please help me on this.
October 10th, 2012 on 11:04 pm
Ya, am having the right queue, and am unable to view the details from the monitoring tab only ( SystemModule > Queue > Monitoring). Also, is the subdeployment creation mandatory for queues?
October 11th, 2012 on 9:57 am
Hi,
I am getting below error/warning in /bea logs of WLS 10.3.5.
This is very common issue nowadays I am facing.
Few things I observed..
1. All messaging bridges (inbound/outbound) will be either connected to source/ connected to target/failed to connected to target destination/forwarding for either managed server.
2. Memory utilization of server is always high and very less free memory
[ba1@bba3 bea]$ free -m
total used free shared buffers cached
Mem: 3775 3542 233 0 436 421
-/+ buffers/cache: 2684 1091
Swap: 4095 939 3156
#### <> <[STUCK] ExecuteThread: '14' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "656" seconds working on the request "weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl@1c5f836a", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
Thread-56 "[STUCK] ExecuteThread: '14' for queue: 'weblogic.kernel.Default (self-tuning)'" {
— Blocked trying to get lock: weblogic.jms.bridge.internal.MessagingBridge@1a2011c0[fat lock]
weblogic.jms.bridge.internal.MessagingBridge.doTrigger(MessagingBridge.java:2180)
weblogic.jms.bridge.internal.MessagingBridge.timerExpired(MessagingBridge.java:2494)
weblogic.timers.internal.TimerImpl.run(TimerImpl.java:253)
weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
weblogic.work.ExecuteThread.execute(ExecuteThread.java:203)
weblogic.work.ExecuteThread.run(ExecuteThread.java:170)
}
>
Can you pls focus on this and help me out.
October 12th, 2012 on 11:24 am
Hi Rene,
When stuck thread issue occured, messages did not pass and gathered into current messages.
There are no unwanted processes running which can be shutdown. Just i thought that this could relate to memory utilization.
I will open SR with Oracle when this occured again and provide them thread dump, bea/mps logs and also config directory for better investigation.
Many thanks for your help 🙂
October 29th, 2012 on 9:15 pm
Hi Ravish,
Am getting the below error while creation of a topic,
ERROR: Unable to add destination FinalJmsModule FinalJmsServer_Osb2@TIEventQueue to the back end FinalJmsServer_Osb2
[JMSExceptions:045050]A destination of name FinalJmsModule FinalJmsServer_OSb2@TIEventQueue has a jms-create-destination-identifier of name FinalJmsModule!FinalJmsServer_Osb2@TIEventQueue. However, another destination of name FinalJmsModule FinalJmsServer_Osb2@TIEventQueue has the same jms-create-destination-identifier. Two destinations with the same jms-create-destination-identifier cannot be co-located on the JMSServer named FinalJmsServer_Osb2
Help me in resolving this issue
November 13th, 2012 on 12:57 pm
Hi All,
I have one Messaging Engine Cluster in my WAS 7.0. Created one queue for one functionality of my application which is being used when i load some data via upload utility tool. On creating Messaging Engine, 3 files get creted :
1. Log File maximum size 100MB
2. TemporaryStore Minimum Size 200MB and Maximum Size 500MB
3. PermanentStore Minimum Size 200MB and Maximum Size 500MB
Now when i load data in large amount then size of PermanentStore is reaching to its maximum limit and at this instant i am getting exception as :
“exception com.ibm.ws.sib.msgstore.TransactionException: com.ibm.ws.sib.msgstore.PersistenceException: Cannot ROLLBACK batch as it not in the correct state! State=STATE_ROLLEDBACK ”
When i increase the Maximum Limit of PermanentStore to Unlimited size, then everything is working fine but in this case the size of PermanentStore is increasing at every transaction which makes this file more than 2-3 GB which is not the correct way.
Someone please suggest me how to keep the size of PermanentStore file to some limited value.
December 11th, 2012 on 3:01 pm
Hi MiddleWareMagic Team,
First of all thanks for adding me in this wonderful community. This is my first comment on this website.
Currently, I have configured Foreign Server with its QUEUES as Destinations and Connection Factories. In this case, how do we monitor the number of messages pending/number of messages consumed in the queues of foreign server. I tried to google also but dint find anything related to monitorting of Foreign Server QUEUES.
Please, help.
Thanks,
Vipul
December 11th, 2012 on 7:09 pm
Thanks Rene Van Wijk…
Can you please tell me in which situation we use Foreign servers for connectivity between Weblogic JMS and Websphere MQ than the Messaging Bridge mechanism?
December 12th, 2012 on 1:01 pm
When, for example, you do not want to persist messages on the WebLogic side.
If you do you choose a bridge, if you do not care that a message that is put through to WebSphere you can choose a foreign server.
http://middlewaremagic.com/weblogic/?p=7969
December 18th, 2012 on 3:23 am
Hi, I am trying to implement message ordering for multiple Asyncronous consumers in my application using 2 MDB’s (each Singleton instance) deployed in weblogic 10.3.4 and Websphere MQ v7.0 as message provider.
I am expecting all the messages for the same group from the queue to be consumed by a single MDB (even though there are multiple consumers). I have connected weblogic application server to websphere MQ using foreign JMS provider. Its not working. I am receiving messages in both the MDB’s.
Will connecting weblogic server to websphere MQ using Message Bridge help ?
December 19th, 2012 on 10:16 pm
Hi Rene, Thanks for your reply. I had looked at unit of work before, but it requires the message provider to be only Weblogic JMS Server and it does not work with third party message provider (Websphere MQ). Is there way message ordering can be implemented in for multiple comsumers (Singleton instance – MDB’s) deployed in Weblogic 10.3.4 and using Websphere MQ as message provider ? I am using JMSXGroupId for associating messages in a group.
April 8th, 2013 on 7:41 pm
Hi Jay !,
In a weblogic domain called ABC, We configured a lot of JMS modules, JMS servers with queues topics etc…to be frank they are 100’s…similarly JDBC configuration.
Now i am created new Domain called BCD and want to migrate complete JMS and JDBC configuration from ABC to BCD.
Is there WLST script that can copy complete JMS and JDBC cofig to new domain.
Please help me out
-Sunny.
April 29th, 2013 on 9:20 pm
Hi,
Currently we have queues in JCAPSS which is a foreign server and in web application we have MDBs to listen to the queues. Currently this setup hosted in sun applicaiton server. Now we are going to migrate to Weblogic. In sun application server we are using JCA adapter to connect MDBS to queue. I would like to know that does weblogic also supports this. If it supports could you please provide me links supporting this architecture.
Thanks,
Surendra
August 21st, 2013 on 4:13 pm
Hi,
What would be reason of messages current count is not getting decreased?
Also, could you please make a new thread for commanly faced error of jms in weblogic.
How much is it useful to manually triggering GC collection from console on OOM error.
Thanks!
October 27th, 2013 on 11:14 pm
Hello Middleware Team,
We have WebLogic cluster environment(just distributed Queues and Topics only) with one JMS server which is targeted to migratable target so as to achieve the HA solution.
Here is the environment details:
WebLogic version: 10.3.6
Java: HP UX 1.7.0.06
OS: HP UX 11.31
Queue/Topic: Distributed targeted to subdeployment which in tern targeted to JMS Server. And these destinations are secured using policies on send / receive methods.
So what we are seeing is, all of sudden we get following error message and after that Shutting down Manage_Server_1 fails with logs indicated in point #2, starting/stopping up the application fails, migrating JMS service fails etc untill we kill manages_server_1 and then after few hours later everything start all over again:
Point # 1
May 9, 2013 12:29:16 PM MDT> <The following unexpected exception was thrown: Internal error in data retirement scheduler
java.lang.IllegalArgumentException: createLogging() method does not exist on class weblogic.j2ee.descriptor.wl.WeblogicWebAppBeanImpl
at weblogic.descriptor.utils.DescriptorUtils.getMethod(DescriptorUtils.java:147)
at weblogic.descriptor.utils.DescriptorUtils.getFirstChildOrDefaultBean(DescriptorUtils.java:113)
at weblogic.servlet.utils.ServletAccessorHelper.getLogicalNamesForWebApps(ServletAccessorHelper.java:58)
at weblogic.diagnostics.accessor.WLSAccessorMBeanFactoryImpl.getLogicalNamesForAvailableWebAppLogs(WLSAccessorMBeanFactoryImpl.java:159)
at weblogic.diagnostics.accessor.WLSAccessorMBeanFactoryImpl.getAvailableDiagnosticDataAccessorNames(WLSAccessorMBeanFactoryImpl.java:105)
Truncated. see log file for complete stacktrace
Point # 2
Here is the error we get while shutting down manage server instance:
#### <ServerRuntime:java.la
ng.SecurityException: User: 'WLadminuser' does not have permission to shutdown server
at weblogic.t3.srvr.T3Srvr.checkPrivileges(T3Srvr.java:1278)
at weblogic.t3.srvr.T3Srvr.checkShutdownPrivileges(T3Srvr.java:1254)
at weblogic.t3.srvr.T3Srvr.forceShutdown(T3Srvr.java:1020)
at weblogic.t3.srvr.ServerRuntime.forceShutdown(ServerRuntime.java:351)
at weblogic.server.RemoteLifeCycleOperationsImpl.forceShutdown(RemoteLifeCycleOperationsImpl.java:57)
at weblogic.server.RemoteLifeCycleOperationsImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:176
When enabled ATN,ATZ flag, it sees "WLadminuser" user but receives "indeterminate" message and therefore access to shutdown is denied as not having enough privillages.
#### <>
#### <>
Really appreciate if you can give me pointers for above problem. It has been months that we are not able to figure out the problem now.
Regards,
Praveen
November 28th, 2013 on 12:18 am
Hi,
We have an application that is hosted on weblogic 11g. The application consumes messages from IBM MQ server.
The MDB that listens to a particular queue picks up the message and starts processing, what we have seen is when the MDB processing time exceeds a certain time limit, we see a duplicate message in the queue. The duplicate message is in the queue before the MDB has returned from the onMessage method.
MDB transaction-type is Container and trans-attribute is NotSupported.
From the Oracle documentation I understand the default acknowledge-mode is AUTO_ACKNOWLEDGE.
1. Does MQ send a duplicate message if it does not recieve an acknowledgment from weblogic.
2. Is there a way to log the Acknowledgments sent by Weblogic or the ones recieved my MQ.
Thanks.
Steve
April 5th, 2016 on 6:47 pm
HI,
Please find the below details
I have two MQ servers
Details :
qmgr name1 : myQmgr1
q name : IN1,IN3
qmgr name2 – myQmgr2
q name : IN2
Due two queue managers, I have two binding files
Bindings1 file details
QCF name – TestQCF1
q name – IN1,IN3
Binding2 file details
QCF name – TestQCF2
q name – IN2
My application using Connection factory name and destination queue name to connect to the Foreign JMS
CF name – AppCF1
Destination name – IncomingQ1
Scenario 1
I need to receive message from queues of different queue mangers to same destination queue (IncomingQ1) of weblogic
Question 1 is
1. By using the same CF and destination queue name -(AppCF1, IncomingQ1) can I connecting to two queue mangers
Scenario 2
I need to receive message from different queues of the same manager to same destination queue (IncomingQ1) of weblogic
Another question is
2 . By using the same CF and destination queue name -(AppCF1, IncomingQ1) Can I connect to two queues(say IN1, and IN2) of the same queue manager(myQmgr1)
Regards,
Eldhose
October 11th, 2017 on 4:34 pm
Hi Jay Sen / Ravish,
Thanks a lot for your efforts for assisting and helping the peoples on middleware technologies issue’s.
May I have your help on JMS / MQ configuration issue which im getting on my env.
# Env Details.
OS=Linux 5.2
WLS = 10.3.6
JROCKIT=1.6
Im part of weblogic team in my org. We got an request to create JMS bridge. With the provided JMS document/info Im able to create Bridge destinations as below.
# Bridge Destination 1
Adapter JNDI Name eis.jms.WLSConnectionFactoryJNDINoTX
Initial Context Factory weblogic.jndi.WLInitialContextFactory
Connection Factory JNDI Name
Destination Type Queue
# Bridge Destination 2
Name QUEUE_MQ_Destination
Adapter JNDI Name eis.jms.WLSConnectionFactoryJNDINoTX
Connection URL file://managed/JMS/JNDI
Initial Context Factory com.sun.jndi.fscontext.RefFSContextFactory
Connection Factory JNDI Name mXAQCF
Destination Type Queue
But while creating JMS Bridge for above destinations. I got Error (“Erros were encountered while performing this operation” “Java.lang.NullPointerException”) on Weblogic console.
Could you please guide me the steps to troubleshoot this issue.
Also May I know the what sequence follow for MDB deployment and bridge configuration creation. How to get detail the error in the logs for this configuration.
Thanks in advance for help.
Best regards
Mahender
March 22nd, 2018 on 2:52 pm
Hi team,
We have a requirement to secure the Multiple JMS uniform distributed queues to access only specific users. Can we achieve this through wlst script ?
Many thanks in advance!
regards,
Hari.