Hi….
Our application works on weblogic 8.1(Linux) and uses 6 managed servers across 2 physical machines.
Problem is we need to maintain a cache across all the 6 managed servers and we r making use of distributed topic for this purpose.So whenever a managed server gets a request it updates its cache and notifies all the other managed servers using distributed topic. We made use of MDBs for listening to these messages on topic and everything works fine.But suddenly sometimes say 2 servers will not be notified while the remaining r notified.We r not getting any error as I checked both our app and weblogic console logs.Can u help in this matter…
From what I uderstand, at times some subscribers are getting the message and some are not.
This can be due to network issues.
You can try setting Redeliver Limit and see if it helps.
Also enable JMS Debugging for more information.
This would give us more information on your issue and also you can check the logs files for the path of the message as “DebugJMSMessagePath” prints information following a message through the message path (client, frontend, backend), including the message identifier and check if the message is reaching or not.
Hi Vigaros,
WLST doesnot have any function of feature which can show these system properties. But you can use the following WebLogic Utility to see all the system properties set : java utils.getProperty
You need to run “. ./setWLSEnv.sh” before running this utility. You can even run “setDomainEnv.sh”
Also the same thing can be seen in the Server Log as well…
.
.
Keep Posting 🙂
Thanks
Jay SenSharma
here problem is onMessage() is not calling for some times, when i do restart server its calling onMessage(). but it should call when ever message arrives in Queue, its not happning and no Error or Exception thrown.
have problemw with JMS Message listener, and its not consuming message from queue, once I restart server then its sending message form queue, no exception or error thrown.
onMessage() in message listener is not firing always..how to resolve the issue.
Even no Exception showed in the server logs. I am using sun java server8.2
code set
/** Initializes the servlet.
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
receiver = new GatewayMessageReceiver(); //here iam calling my GatewayMessageReceiver for JMS connection creations
info(“”+receiver);
}
/** Destroys the servlet
*/
public void destroy() {
if (receiver != null) {
receiver.destroy();
}
}
protected void processGatewayRequest(ServletRequest request, ServletResponse response)
throws ServletException, java.io.IOException {
//doing some business logic
try{
String queueName = “infoQueue”;//its sun java app sever queue name
String qcfName = “infoQueueCF”;//connectionfactory created in sun java app sever
However we had done some normal testing on WLS 10.3.0, but we were not able to replicate your issue and as you mentioned its more like intermediate then its gets more difficult to narrow down the issue. I would request you to try to keep the Queue and your consumer on the same box, same domain and then try the load testing so that we can narrow down the network issue.
I am not able to understand the below mentioned problem, please help me on this asap.
In my environment there are one Admin Server and one cluster which contains two managed servers.
Previously migration basis was not set as it was not required and there was one JMS module with the following configuration.
FileStore1=>MS1
FileStore2=>MS2
JMSServer1=>MS1 and using FileStore1
JMSServer2=>MS2 and using FileStore2
One system module=>Admin,MS1,MS2 with following resources:
1. ConnectionFactory1=>Admin and jndi=jms/admin.qcf
2. Queue1=>Admin and jndi=jms/admin.queue
3. ConnectionFactory2=>MS1,MS2 and jndi=jms/ms.qcf
4. Queue2=>MS1 and jndi=jms/ms.queue
5. Queue3=>MS2 and jndi=jms/ms.queue
6. Foreign JMS Server=>Admin,MS1 and MS2 which actually points to admin and contains one queue with localjndi=jms/remote.queue, remotejndi=jms/admin.queue and one connection factory with localjndi=jms/remote.qcf, remotejndi=jms/admin.qcf
I didn’t create the above configuration but i am facing problems because of this.
when I configured the migration basis as consensus and a new migratable target created with auto migration there was three exceptions.
Admin Server on start
=======================
It is saying “Cannot add Singleton Service as Singleton not started. Check if MigrationBasis for cluster is configured.”
When any one MS starts and another one already running
======================================================
It is saying that queue jndi in resource no. 4 and 5 are conflicting. Error is something jndi already bound by another object
Problem on MS resolved when i used migration basis as database.
Kindly help to solve the problem on Admin server as it is killing my time.
hi ,
I have an issue with communication between 2 wblogic domains using Foreign JMS .Below are the details.
Domain A :
WL 10.3 with one distributed queue.
Domain B :
WL 11 g with a Foreign JMS and proxy service and a JMS topic.
I have configured Foreign JMS(FJMS) on Domain B to pick messages from quueu residing on Domain A .A proxy service listens to FJMS on Domain B picks messages and posts to JMS Topic. Messages are getting transfered to Domain B but these messages are getting delivered multiple times from JMS queue. (Because of redelivery limit set on JMS quque on Domain A ).
XA connection factories have been used on both domains. Any help on this would be highly appreciated.
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?.
When producer weblogic restarts do we need to restart the consumer as well? Do we require configuration change or code level change? I tried with reconnect policy to “all” and “producer” at producer weblogic server connection factory but still it didn’t work
The error is
weblogic.jms.common.JMSException: [JMSClientExceptions:055053]Error creating connection to the server: java.rmi.ConnectException: This RJVM has already been shutdown
Hi,
I have a JMS queue and configured with a MDB listener in Weblogic 10.3 to get the asynchronous behaviour.
We defined pool of 5 objects to MDB and the 5 objects are getting created successfully.
The issue is ::
From the pool of objects only one object is processing all the messages one by one so it is becoming synchronous.
The messages should distribute to all the objects available in the pool. How can we acheive this?
The behavior which you are observing is the Default behavior (Work As Designed feature) of weblogic. Because as soon as there will be much load on the server (like if thousands of messages are sent to the MDB) then other four instances of the MDBs also will start functioning. But if the load of messages is very low and can be handled by a single MDB instance then other MDB instances will not be involved by weblogic.
Hi Jay,
We have tested with 8000 messages in queue and 5 objects in pool. Onmessage method processing time is 15 seconds.
With above load still the messages are processing by only one object.
So does it need any specific configuration change to do the asynchronous processing of messages?
We have a Weblogic cluster with 4 nodes and 4 JMS servers, but one of the queues needs to be single threaded. What is happening is that all the messages in one queue are being consumed but messages going to the other 3 are ‘stuck’ and are not being processed. What the best way to deal with this?
Hi Ravish,
I want my JMS adapter to consume data from the Hornetq. I did created Foreign server with connections (HornetQ CF) and destination (HornetQ Topic). But my HornetQ is 2 node Cluster so can i have steps for that?
Hi Rene,
It was a help. Thank you. Now My scenario is:
I have a HornetQ topic with durable subscriber. I have created JMS module with foreign server using hornetQ Connection factory and topic JNDI. I also created outbound connection pool for that in the deployments/jmsadapter. Now i want my BPEL to consume messages from the hornetq topic using JMS adapter in it. How can i do that?
Q1. How could i targate SubDeployment named as 'TestSOASubDeployment' by using 'TestJMSServer1' and 'TestJMSServer2' at a time for a particular cluster url? (look: 1st file SubDeployment Section)
i don’t wanted to do this by hard code it should be variable calling from .properties file. so, how could i represent the server name as variable instead of hard code?
Actually my requirement is that JMSServer1, JMSServer2 needs to be replaced by TestJMSServer1, TestJMSServer2 which has been specified in the .properties file under the variable name jms.server.name.1 and jms.server.name.2. These JMS Servers are first being created, and then being targeted while creating the SubDeployment. I am stuck at the point where these 2 JMS Servers need to be targeted, through a variable rather than hard coding it.
Hi..I’m performance tuning my application. I want to increase the consumer count for my JMS distributed queues from the default value of 16 to 32 to increase the throughput. How could I do that? I’m using weblogic 12.1c
hi there
thanks a lot for your really useful website.
I have a question that it’s really confusing me in recent several days.
I’m using WebLogic(12c) and I want to consume a remote queue on another machine that uses IBM Websphere MQ (v.7)
all information I have is :
1-Queue manager name
2-Queue name
3-Channel name
4-Ip and port
it’s very important for me to consume remote queue using java MDB and JMS configurations.
is is there any certain guid to perform this job ?
September 16th, 2010 on 12:21 pm
Hi….
Our application works on weblogic 8.1(Linux) and uses 6 managed servers across 2 physical machines.
Problem is we need to maintain a cache across all the 6 managed servers and we r making use of distributed topic for this purpose.So whenever a managed server gets a request it updates its cache and notifies all the other managed servers using distributed topic. We made use of MDBs for listening to these messages on topic and everything works fine.But suddenly sometimes say 2 servers will not be notified while the remaining r notified.We r not getting any error as I checked both our app and weblogic console logs.Can u help in this matter…
Thanks and Regards
Naveen Chowdary
September 19th, 2010 on 3:02 am
Hi Naveen,
From what I uderstand, at times some subscribers are getting the message and some are not.
This can be due to network issues.
You can try setting Redeliver Limit and see if it helps.
Also enable JMS Debugging for more information.
Let me know if my understanding is correct!
Thanks,
Faisal
September 25th, 2010 on 10:45 pm
Hi Naveen Chowdary,
I would agree with Faisal that this could be more of a network issue as some of the subscribers are getting the messages and some are not.
Enable the following debug flags
-Dweblogic.debug.DebugJMSBackEnd=true
-Dweblogic.debug.DebugJMSFrontEnd=true
-Dweblogic.debug.DebugJMSDispatcher=true
-Dweblogic.debug.DebugJMSMessagePath=true
-Dweblogic.debug.DebugJMSDistTopic=true
This would give us more information on your issue and also you can check the logs files for the path of the message as “DebugJMSMessagePath” prints information following a message through the message path (client, frontend, backend), including the message identifier and check if the message is reaching or not.
Hope this information helps.
Regards,
Ravish Mody
September 28th, 2010 on 5:42 am
Hello Admin,
this is the JMS module described for weblogic 9.2.2.0 version
weblogic-jms xmlns=”http://www.bea.com/ns/weblogic/90″ xmlns:sec=”http://www.bea.com/ns/weblogic/90/security” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:wls=”http://www.bea.com/ns/weblogic/90/security/wls” xsi:schemaLocation=”http://www.bea.com/ns/weblogic/920 http://www.bea.com/ns/weblogic/920.xsd“>
I want to convert this or write a new one for weblogic 10.0 version, can i use the same version or do i need to change the above file.
I guess we need to change something. But i dont know how to give the weblogic-jms thing
Please help Admin
Thanks in Advance
Thank you
January 4th, 2011 on 4:22 pm
Hello All,
This may be helpful in controlling the size of JMS file store
Weblogic provides a option
“DWeblogic.store.MaxFileSize=size”
to limit the maximum size of file store. This option is valid from 10.3.1 and provided as part of BUG 8186074.
Thanks
Sumit
February 1st, 2011 on 3:07 pm
Hi,
How i can see the following properties through WLST?
-user.language
-user.country
is this possible?
What is the value of default on startup?
Thanks.
vigaros.
February 1st, 2011 on 10:43 pm
Hi Vigaros,
WLST doesnot have any function of feature which can show these system properties. But you can use the following WebLogic Utility to see all the system properties set :
java utils.getProperty
You need to run “. ./setWLSEnv.sh” before running this utility. You can even run “setDomainEnv.sh”
Also the same thing can be seen in the Server Log as well…
.
.
Keep Posting 🙂
Thanks
Jay SenSharma
April 25th, 2011 on 11:48 pm
hi Ravis or Jay , how r u.
here problem is onMessage() is not calling for some times, when i do restart server its calling onMessage(). but it should call when ever message arrives in Queue, its not happning and no Error or Exception thrown.
have problemw with JMS Message listener, and its not consuming message from queue, once I restart server then its sending message form queue, no exception or error thrown.
onMessage() in message listener is not firing always..how to resolve the issue.
Even no Exception showed in the server logs. I am using sun java server8.2
code set
import java.util.*;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class GatewayServlet extends HttpServlet {
private GatewayMessageReceiver receiver = null;
/** Initializes the servlet.
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
receiver = new GatewayMessageReceiver(); //here iam calling my GatewayMessageReceiver for JMS connection creations
info(“”+receiver);
}
/** Destroys the servlet
*/
public void destroy() {
if (receiver != null) {
receiver.destroy();
}
}
protected void processGatewayRequest(ServletRequest request, ServletResponse response)
throws ServletException, java.io.IOException {
//doing some business logic
}
protected void processRequest(ServletRequest request, ServletResponse response)
throws ServletException, java.io.IOException {
Logger.getGatewayLogger(GeneralConfigurator.getInstance().getUtility()).debug(“Host sending request is:”+request.getRemoteHost());
//check whether it’s a push request
processGatewayRequest(request, response);
}
/** Handles the HTTP
POST
method.* @param request servlet request
* @param response servlet response
*/
public void service(ServletRequest request, ServletResponse response)
throws ServletException, java.io.IOException {
processRequest(request, response);
}
public void doGet(ServletRequest request, ServletResponse response)
throws ServletException, java.io.IOException {
service(request, response);
}
public void doPost(ServletRequest request, ServletResponse response)
throws ServletException, java.io.IOException {
service(request, response);
}
}
MS MESSAGE LISTNER IS
mport javax.jms.*;
import java.util.logging.*;
/**
*
* @author Administrator
*/
public class GatewayMessageReceiver implements MessageListener {
private QueueConnection connection = null;
/** Creates a new instance of GatewayMessageReceiver */
public GatewayMessageReceiver() {
super();
init();
}
private void init() {
QueueSession session = null;
QueueReceiver queueReceiver = null;
try{
String queueName = “infoQueue”;//its sun java app sever queue name
String qcfName = “infoQueueCF”;//connectionfactory created in sun java app sever
Logger.log.log(Level.INFO, “Queue name: “+queueName);
Logger.log.log(Level.INFO, “Queue CF name: “+qcfName);
QueueConnectionFactory qcf =
(QueueConnectionFactory)JndiUtilities.get(qcfName);
Logger.log.log(Level.INFO, “Queue CF: “+qcf);
Queue queue =
(Queue)JndiUtilities.get(queueName);
Logger.log.log(Level.INFO, “Queue: “+queue);
// Creating a QueueConnection to the Message service”);
connection = qcf.createQueueConnection();
// Creating a session within the connection
session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
// Creating a QueueReceiver
queueReceiver = session.createReceiver(queue);
// setting up a message listener
queueReceiver.setMessageListener(this);
//Starting the Connection
connection.start();
} catch (Throwable t) {
Logger.log(Level.SEVERE, “Failed to start queue listener for business messages”, t);
}
}
public void destroy() {
try {
if (connection != null) {
connection.close();
}
} catch (Throwable t) {
Logger.log(Level.SEVERE, “Failed to close queue connection”, t);
}
}
public void onMessage(javax.jms.Message message) {
String ut = null;
try {
String utm = message.getStringProperty(IConstants.UTILITY_TAG);
int bcDelay = message.getIntProperty(IConstants.BC_DELAY);
//it must be an ObjectMessage!
ObjectMessage omsg = (ObjectMessage)message;
//Here iam doing business logic
} catch (Throwable t) {
Logger.log(Level.SEVERE, “Failed to process business message”, t);
}
}
}
THE JNDI UTILITIES CLASS
import javax.naming.*;
import javax.sql.*;
/**
*
* @author Administrator
*/
public class JndiUtilities {
private static Context context = null;
static {
setJndiContext();
}
/** Creates a new instance of JndiUtilities */
private JndiUtilities() {
super();
}
private static void setJndiContext() {
try {
context = new InitialContext();
} catch (Exception e) {
System.err.println(“ERROR getting JNDI context: “+e);
}
}
public static Object get(String name) {
if (context == null) {
setJndiContext();
if (context == null) return null;
}
Object obj;
try {
obj = context.lookup(name);
} catch (Exception e) {
obj = null;
System.err.println(“ERROR getting JNDI resource named “”+name+””: “+e);
}
return obj;
}
}
please help me in this case
Thanks
npkumar
April 26th, 2011 on 9:25 pm
hi could you please help me in the above case
thaks
Naveen
May 2nd, 2011 on 5:42 pm
HI Naveen,
I am really sorry for the replying late.
However we had done some normal testing on WLS 10.3.0, but we were not able to replicate your issue and as you mentioned its more like intermediate then its gets more difficult to narrow down the issue. I would request you to try to keep the Queue and your consumer on the same box, same domain and then try the load testing so that we can narrow down the network issue.
I would also request you to also post your query on Oracle Technical Network Forums in JMS section
http://forums.oracle.com/forums/forum.jspa?forumID=831
Regards,
Ravish Mody
July 25th, 2011 on 9:23 pm
Hi All,
I am not able to understand the below mentioned problem, please help me on this asap.
In my environment there are one Admin Server and one cluster which contains two managed servers.
Previously migration basis was not set as it was not required and there was one JMS module with the following configuration.
FileStore1=>MS1
FileStore2=>MS2
JMSServer1=>MS1 and using FileStore1
JMSServer2=>MS2 and using FileStore2
One system module=>Admin,MS1,MS2 with following resources:
1. ConnectionFactory1=>Admin and jndi=jms/admin.qcf
2. Queue1=>Admin and jndi=jms/admin.queue
3. ConnectionFactory2=>MS1,MS2 and jndi=jms/ms.qcf
4. Queue2=>MS1 and jndi=jms/ms.queue
5. Queue3=>MS2 and jndi=jms/ms.queue
6. Foreign JMS Server=>Admin,MS1 and MS2 which actually points to admin and contains one queue with localjndi=jms/remote.queue, remotejndi=jms/admin.queue and one connection factory with localjndi=jms/remote.qcf, remotejndi=jms/admin.qcf
I didn’t create the above configuration but i am facing problems because of this.
when I configured the migration basis as consensus and a new migratable target created with auto migration there was three exceptions.
Admin Server on start
=======================
It is saying “Cannot add Singleton Service as Singleton not started. Check if MigrationBasis for cluster is configured.”
When any one MS starts and another one already running
======================================================
It is saying that queue jndi in resource no. 4 and 5 are conflicting. Error is something jndi already bound by another object
Problem on MS resolved when i used migration basis as database.
Kindly help to solve the problem on Admin server as it is killing my time.
Thanks in Advance
January 3rd, 2012 on 4:45 pm
hi ,
I have an issue with communication between 2 wblogic domains using Foreign JMS .Below are the details.
Domain A :
WL 10.3 with one distributed queue.
Domain B :
WL 11 g with a Foreign JMS and proxy service and a JMS topic.
I have configured Foreign JMS(FJMS) on Domain B to pick messages from quueu residing on Domain A .A proxy service listens to FJMS on Domain B picks messages and posts to JMS Topic. Messages are getting transfered to Domain B but these messages are getting delivered multiple times from JMS queue. (Because of redelivery limit set on JMS quque on Domain A ).
XA connection factories have been used on both domains. Any help on this would be highly appreciated.
February 6th, 2012 on 10:25 pm
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?.
When producer weblogic restarts do we need to restart the consumer as well? Do we require configuration change or code level change? I tried with reconnect policy to “all” and “producer” at producer weblogic server connection factory but still it didn’t work
The error is
weblogic.jms.common.JMSException: [JMSClientExceptions:055053]Error creating connection to the server: java.rmi.ConnectException: This RJVM has already been shutdown
April 12th, 2012 on 9:27 pm
Hi All,
I am new to weblogic, i just want to know whether i can build a message between two jms servers of a one weblogic domain.
in lab-mt domain
i created two JMS servers:
jms_server1:
jms_queue1 and connection_factory_jms1
jms_server2:
jms_queue2 and connection_factory_jms2
with these two CF and queues can i build a message bridge..
help me
since i have a requirement that
from third party tool build with PLSQL and forms
will enqueue data to JMS queue
in OSB i need to dequeue data
will it work…
please help me out in this issue ..
May 10th, 2012 on 6:29 pm
Hi,
I have a JMS queue and configured with a MDB listener in Weblogic 10.3 to get the asynchronous behaviour.
We defined pool of 5 objects to MDB and the 5 objects are getting created successfully.
The issue is ::
From the pool of objects only one object is processing all the messages one by one so it is becoming synchronous.
The messages should distribute to all the objects available in the pool. How can we acheive this?
May 11th, 2012 on 11:18 am
HI swas,
The behavior which you are observing is the Default behavior (Work As Designed feature) of weblogic. Because as soon as there will be much load on the server (like if thousands of messages are sent to the MDB) then other four instances of the MDBs also will start functioning. But if the load of messages is very low and can be handled by a single MDB instance then other MDB instances will not be involved by weblogic.
.
.
Keep Posting 🙂
Thanks
Jay SenSharma
May 11th, 2012 on 6:57 pm
Hi Jay,
We have tested with 8000 messages in queue and 5 objects in pool. Onmessage method processing time is 15 seconds.
With above load still the messages are processing by only one object.
So does it need any specific configuration change to do the asynchronous processing of messages?
Thanks,
swas.
July 31st, 2012 on 5:39 pm
Hi,
We have a Weblogic cluster with 4 nodes and 4 JMS servers, but one of the queues needs to be single threaded. What is happening is that all the messages in one queue are being consumed but messages going to the other 3 are ‘stuck’ and are not being processed. What the best way to deal with this?
Cheers
Rod
September 11th, 2012 on 12:32 am
Hi Ravish,
I want my JMS adapter to consume data from the Hornetq. I did created Foreign server with connections (HornetQ CF) and destination (HornetQ Topic). But my HornetQ is 2 node Cluster so can i have steps for that?
September 12th, 2012 on 12:52 am
Hi Rene,
It was a help. Thank you. Now My scenario is:
I have a HornetQ topic with durable subscriber. I have created JMS module with foreign server using hornetQ Connection factory and topic JNDI. I also created outbound connection pool for that in the deployments/jmsadapter. Now i want my BPEL to consume messages from the hornetq topic using JMS adapter in it. How can i do that?
September 28th, 2012 on 12:14 pm
Check it out. there is two files and the question at last.
##1st File JMS_Setup.py
from java.io import FileInputStream
import java.lang
import os
import string
propInputStream = FileInputStream(“domain.properties”)
configProps = Properties()
configProps.load(propInputStream)
# Connection Details
serverUrl = configProps.get(“server.url”)
Username = configProps.get(“username”)
Password = configProps.get(“password”)
# FileStore & JMS Server Details
FileStoreCount = configProps.get(“filestore.count”)
JMSServerCount = configProps.get(“jms.server.count”)
# SystemModule Details
systemModuleName = configProps.get(“system.module.name”)
targetedSystemModuleName = configProps.get(“trageted.system.module.name”)
# SubDeployment Details
subdeploymentName = configProps.get(“subdeployment.name”)
# DistributedQueue Details
DistributedQueueCount = configProps.get(“distributedQueue.count”)
# Topic Details
topicName = configProps.get(“topic.name”)
topicJNDIName = configProps.get(“topic.jndi.name”)
# Connection Factory Details
CFCount = configProps.get(“CF.count”)
# Connecting to the Destination
connect(Username,Password,serverUrl)
edit()
print “================== File Store & JMS Server ===================”
startEdit()
InitFileStoreCount = 1
while (InitFileStoreCount <= int(FileStoreCount)) :
print InitFileStoreCount
fileStoreName = configProps.get("file.store.name."+ str(InitFileStoreCount))
targetName = configProps.get("server.target."+ str(InitFileStoreCount))
jmsServerName = configProps.get("jms.server.name."+ str(InitFileStoreCount))
print fileStoreName
cd('/')
cmo.createFileStore(fileStoreName)
print "File Store Created !!"
cd('/FileStores/'+fileStoreName)
set('Targets',jarray.array([ObjectName('com.bea:Name='+targetName+',Type=Server')], ObjectName))
print "File Store Targeted !!"
cd('/')
cmo.createJMSServer(jmsServerName)
print "JMS Server Created !!"
cd('/Deployments/' +jmsServerName)
cmo.setPersistentStore(getMBean('/FileStores/'+fileStoreName))
set('Targets',jarray.array([ObjectName('com.bea:Name='+targetName+',Type=Server')], ObjectName))
print "JMS Server Targeted !!"
InitFileStoreCount = InitFileStoreCount + 1
save()
activate()
print "================== SystemModule ==================="
startEdit()
cd('/')
cmo.createJMSSystemResource(systemModuleName)
print "System Module Created"
cd('/SystemResources/'+ systemModuleName)
#set('Targets',jarray.array([ObjectName('com.bea:Name=soa_cluster,Type=Cluster')], ObjectName)) – Cluster
set('Targets',jarray.array([ObjectName('com.bea:Name=AdminServer,Type=Server')], ObjectName))
print "System Module Targeted"
activate()
print "================== SubDeployment ==================="
startEdit()
cd('/SystemResources/' + systemModuleName)
cmo.createSubDeployment(subdeploymentName)
print "Subdeployment Created"
cd('/SystemResources/' + systemModuleName + '/SubDeployments/' + subdeploymentName)
#set('Targets',jarray.array([ObjectName('com.bea:Name=SOAJMSServer_auto_1,Type=JMSServer'), ObjectName('com.bea:Name=SOAJMSServer_auto_2,Type=JMSServer')], ObjectName)) – Cluster
set('Targets', jarray.array([ObjectName('com.bea:Name=SOAJMSServer,Type=JMSServer')], ObjectName))
print "Subdeployment Targeted"
activate()
startEdit()
print "================== Queues ==================="
InitQueueCount = 0
while (InitQueueCount < int(DistributedQueueCount)) :
distributedQueueName = configProps.get("distributedqueue.name."+ str(InitQueueCount))
distributedQueueJNDIName = configProps.get("distributedqueue.jndi.name."+ str(InitQueueCount))
cd('/JMSSystemResources/'+systemModuleName+'/JMSResource/'+systemModuleName)
cmo.createUniformDistributedQueue(distributedQueueName)
print "Queue Created !!"
cd('/JMSSystemResources/'+ systemModuleName + '/JMSResource/' + systemModuleName+ '/UniformDistributedQueues/' + distributedQueueName)
cmo.setJNDIName(distributedQueueJNDIName)
print "Queue JNDI Set !!"
cd('/JMSSystemResources/' + systemModuleName+ '/JMSResource/' + systemModuleName + '/UniformDistributedQueues/'+ distributedQueueName)
cmo.setSubDeploymentName(subdeploymentName)
print "Queue Subdeployment Set !!"
InitQueueCount=InitQueueCount+1
save()
activate()
print "================== Topic ==================="
startEdit()
cd('/JMSSystemResources/'+systemModuleName+'/JMSResource/'+systemModuleName)
cmo.createTopic(topicName)
print "Topic Created !!"
cd('/JMSSystemResources/'+systemModuleName+'/JMSResource/'+systemModuleName+'/Topics/'+topicName)
cmo.setJNDIName(topicJNDIName)
print "Topic JNDI Set !!"
cd('/JMSSystemResources/' + systemModuleName+ '/JMSResource/' + systemModuleName + '/Topics/'+ topicName)
cmo.setSubDeploymentName(subdeploymentName)
print "Topic Subdeployment Set !!"
activate()
print "================== Connection Factory ==================="
startEdit()
InitCFCount = 1
while (InitCFCount <= int(CFCount)) :
CFName = configProps.get("connection.factory.name."+ str(InitCFCount))
CFJNDIName = configProps.get("connection.factory.jndi.name."+ str(InitCFCount))
cd('/JMSSystemResources/'+systemModuleName+'/JMSResource/'+systemModuleName)
cmo.createConnectionFactory(CFName)
print "Connection Factory Created !!"
cd('/JMSSystemResources/'+ systemModuleName + '/JMSResource/' + systemModuleName+ '/ConnectionFactories/' + CFName)
cmo.setJNDIName(CFJNDIName)
print "Connection Factory JNDI Set !!"
cd('/JMSSystemResources/' + systemModuleName+ '/JMSResource/' + systemModuleName + '/ConnectionFactories/' + CFName)
cmo.setSubDeploymentName(subdeploymentName)
print "Connection Factory Subdeployment Set !!"
InitCFCount=InitCFCount+1
save()
activate()
print "SUCCESS..!!"
##2nd file domain.properties
# Connection Details
server.url = t3://10.141.112.10:7001
username = weblogic
password = weblogic1
# FileStore & JMS Server Details
filestore.count = 2
jms.server.count = 2
file.store.name.1 = EviseJMSFileStore1
jms.server.name.1 = EviseJMSServer1
#server.target.1 = soa_server1 – Cluster
server.target.1 = AdminServer
file.store.name.2 = EviseJMSFileStore2
jms.server.name.2 = EviseJMSServer2
#server.target.2 = soa_server2 – Cluster
server.target.2 = AdminServer
# SystemModule Details
system.module.name = EviseSOAJMSModule
targeted.system.module.name = AdminServer
# SubDeployment Details
subdeployment.name = EviseSOASubDeployment
# DistributedQueue Details
distributedQueue.count = 9
distributedqueue.name.0 = BounceQ
distributedqueue.jndi.name.0 = BounceQ
distributedqueue.name.1 = InboundRequestQueue
distributedqueue.jndi.name.1 = InboundRequestQueue
distributedqueue.name.2 = JavaMailCommunicationQueue
distributedqueue.jndi.name.2 = JavaMailCommunicationQueue
distributedqueue.name.3 = MessageProcessingResponseQueue
distributedqueue.jndi.name.3 = jms/MessageProcessingResponseQ
distributedqueue.name.4 = pdfRequestQueue
distributedqueue.jndi.name.4 = pdfRequestQueue
distributedqueue.name.5 = TestVirusScanQ
distributedqueue.jndi.name.5 = TestVirusScanQ
distributedqueue.name.6 = VirusScanNewRequestQueue
distributedqueue.jndi.name.6 = VirusScanNewRequestQueue
distributedqueue.name.7 = zipRequestQueue
distributedqueue.jndi.name.7 = zipRequestQueue
distributedqueue.name.8 = zipResponseQueue
distributedqueue.jndi.name.8 = zipResponseQueue
# Topic Details
topic.name = ErrorManagementTopic
topic.jndi.name = ErrorManagementTopic
# ConnectionFactory Details
CF.count = 5
connection.factory.name.1 = CommunicationCF
connection.factory.jndi.name.1 = CommunicationCF
connection.factory.name.2 = JavaMailCommunicationCF
connection.factory.jndi.name.2 = JavaMailCommunicationCF
connection.factory.name.3 = STPConnFactory
connection.factory.jndi.name.3 = STPConnFactory
connection.factory.name.4 = MessageProcessingResponseConnectionFactory
connection.factory.jndi.name.4 = jms/MessageProcessingResponseConnectionFactory
connection.factory.name.5 = ErrorManagementCF
connection.factory.jndi.name.5 = ErrorManagementCF
Q1. How could i targate SubDeployment named as 'TestSOASubDeployment' by using 'TestJMSServer1' and 'TestJMSServer2' at a time for a particular cluster url? (look: 1st file SubDeployment Section)
September 28th, 2012 on 3:54 pm
i don’t wanted to do this by hard code it should be variable calling from .properties file. so, how could i represent the server name as variable instead of hard code?
October 1st, 2012 on 12:13 pm
Actually my requirement is that JMSServer1, JMSServer2 needs to be replaced by TestJMSServer1, TestJMSServer2 which has been specified in the .properties file under the variable name jms.server.name.1 and jms.server.name.2. These JMS Servers are first being created, and then being targeted while creating the SubDeployment. I am stuck at the point where these 2 JMS Servers need to be targeted, through a variable rather than hard coding it.
May 16th, 2014 on 5:12 pm
Hi..I’m performance tuning my application. I want to increase the consumer count for my JMS distributed queues from the default value of 16 to 32 to increase the throughput. How could I do that? I’m using weblogic 12.1c
December 28th, 2016 on 3:48 pm
Hi ravish,
Please provide JMS configuration with websphere MQ
December 28th, 2016 on 4:04 pm
Hello ,
Unfortunately currently we do not have any Article on IBM MQ + WLS however following article (for JBoss) might give you some guidance:
http://middlewaremagic.com/jboss/?p=1490
http://middlewaremagic.com/jboss/?p=1706
Regards
Jay SenSharma
December 9th, 2017 on 12:54 pm
hi there
thanks a lot for your really useful website.
I have a question that it’s really confusing me in recent several days.
I’m using WebLogic(12c) and I want to consume a remote queue on another machine that uses IBM Websphere MQ (v.7)
all information I have is :
1-Queue manager name
2-Queue name
3-Channel name
4-Ip and port
it’s very important for me to consume remote queue using java MDB and JMS configurations.
is is there any certain guid to perform this job ?