SAF JMS Module Targeting in a cluster

Hi, I'm having a bit of trouble working out the best way of configuring my SAF modules in a clustered environment.
I have one cluster (Cluster1) of 4 JVM's which host a distributed destination and a second cluster (Cluster2) of 4 JVM's which host another distributed destination.
The UDD in Cluster2 is where the messages placed on the UDD in Cluster1 should be sent to by the SAF Agent.
SAF agents are easy, just create one for each of the 4 JVM's in Cluster1.
The bit I'm having trouble with is how to create my JMS module using the best practise approaches to hold the RemoteSAFContext and SAFImportedDestinations and where to target the resources.
RemoteSAFContext gets targeted to the cluster, but do I create an entry for SAFImportedDestinations for each of the 4 JVM's in the cluster and then target that at the corresponding subdeployment, or just create one entry for the SAFImportedDestination and target that at the whole cluster?
I'm probably making this much harder than it actually is, but if anyone has any suggestions that would be great.
Pete
Edited by: Pete.Inman on Feb 4, 2010 2:45 PM

or just create one entry for the SAFImportedDestination and target that at the whole cluster?Yes and no. Yes, create one entry. No, please don't target it to the whole cluster -- as that can work, but there be dragons. I recommend following the documented [ JMS Configuration Best Practices | http://download.oracle.com/docs/cd/E15523_01/web.1111/e13738/best_practice.htm#CACJCGHG ] -- namely:
(1) Create (or re-use) a custom store per server, targeted at the local default migratable target, and create (or re-use) a SAF agent per server that references the local store and that targets the same migratable target as the local store. Set a quota on each SAF agent (always always always set quotas).
(2) Create a single module and target to SAF cluster.
(3) Create a single subdeployment for the module, and populate with the exact names of the SAF agents from step 1
(4) Configure SAF Context in the module.
(5) Configure imported destination in the module, reference the SAF context, and target it to the subdeployment defined in step 3.
Tom
PS. Please post future JMS related questions in the WebLogic Server - JMS newsgroup...
Edited by: TomB on Feb 4, 2010 7:42 PM

Similar Messages

  • JMS Server targeted to Server cluster

    Hi , Can JMS Server be targeted to Server Cluster? Are there any
              architectural best practices for this?

    Thanks Tom.
              <Tom Barnes> wrote in message news:[email protected]...
              There's no underlying machinery (code) that supports targeting a JMS server
              to a cluster.
              The targeting problem can actually get fairly involved - for a variety of
              reasons, I tend to recommend the following cookie cutter approach.
              This is a cut-and-paste from my notes:
              (1) Create a custom WL store on each server, and target it to a migratable
              target (most of the time you can use the default migratable target that each
              server provides).
              (2) Target the JMS servers to a migratable target each, the same MT as the
              store (don't worry, the JMS server won't wander to a different server
              unless you configure the MT to allow this!)
              (3) Target jms configuration system modules to the cluster (that's it! - not
              to anything else)
              (4) Create one subdeployment per module (and only one), populate the
              subdeployment only with JMS servers from step (2) above.
              (5) When targeting destinations always use advanced targeting to target
              destinations to the subdeployment from above - not the 'default target'.
              If you have both non-distributed and distributed destinations, use two
              different JMS modules. (The idea is to keep things simple to understand -
              each module should yield the same targeting solution for all of its
              component resources. Default targetting can be problematic - it is far too
              easy for destination members to end up on JMS servers that you don't want
              them on.).
              (6) When targeting a CF you have two options (A) use advanced targeting to
              target it to the subdeployment (for access by applications that are remote
              to the cluster) or (B) don't target it all (this will cause it to use the
              module target, which if you recall, we just set to the cluster, (for access
              by applications that run on a server within the cluster). The choice
              actually depends on how you plan to use the CF - use (B) for apps running on
              servers within the cluster, and (A) for apps running remote to the cluster.
              See the otherwise-largely-outdated JMS Performance Guide for the reasoning.
              It may be that you don't have to use migratable targets, as you may not have
              a use for "migration" at the moment - but it'll help in the future if you
              ever plan to use the migration features.
              Tom

  • JMS system module between Admin and Cluster

    Hi,
    In my application, I have JMS servers,queues and Uniform distributed Queue to be assigned to Cluster and some other queues to be assigned to Admin server.
    Can I have assign resources for both Cluster and Admin servers in single JMS system module and assign its target to both Cluster and Admin? or Should I create seperate JMS system module for admin and Cluster? Which is best and efficient way? PLease clarify.
    Thanks in advance.

    Hi,
    Can I have assign resources for both Cluster and Admin servers in single JMS system module and assign its target to both Cluster and Admin?Yes
    Should I create seperate JMS system module for admin and Cluster? Which is best and efficient way?This depends on how much you are going to stress the queue, and your box. This is, you should try to have a queue persistent store that somehow matches what the box can handle. Also keep in mind that local queues tent to be more efficient than remote queues, at the cost of adding cycles to the box where you have your app installed.
    Regards,
    LG

  • JMS server targeted to several clusters

    Hello,
    I am facing a problem with my JMS configuration in weblogic (version 10.3.4.0). I have two clusters. Following the [JMS best practice|http://forums.oracle.com/forums/message.jspa?messageID=9455261#9455261] I have created a JMS server in each Managed server within the clusters. I have created only one JMS Module with a subdeployment. The JMS Module is targeted to all managed servers within both clusters, and the subdeployment is targeted to all JMS servers within the clusters.
    At the JMS module I have created a connection Factory targeted to the subdeployment, till there everything is ok.
    Afterwards I try to create a uniform distributed queue (UDQ) targeted to the subdeployment and WebLogic throws the following error:
    A UDD must be targeted to servers within a single cluster or a single stand-alone server, rather than Cluster ClusterA and Cluster ClusterB
    The only solution that I found is to create one JMS Module-subdeployment per JMS Server. Is there a way to have just a JMS Module and use it in all the managed server in several clusters? or I have to set up the same parameters (ConnectionFactories + queue +quota) in each JMS Module.
    Thank you very much in advance.
    Cheers,
    Oscar

    Hi Oscar,
    The correct way to step-up a UDQ is something like below
    C-1 => MS-1 + MS-2
    JMSServer-1 => MS-1
    JMSServer-2 => MS-2
    JMSModule-1 => C-1
    Sub_UDQ => JMSServer-1 + JMSServer-2
    UDQ => Sub_UDQ
    CF => C-1
    Where:
    ======
    MS-x are the managed servers
    C-x are the Cluster
    UDQ is the Uniform Distributed Queue
    Sub_UDQ is the Sub-Deployment for UDQ
    CF is the Connection Factory
    *=>* mean Targeted.
    Also to get more information on it you can have a look at the below link which has the step by step instructions which would surely help you out
    Topic: Steps to Configure Uniform Distributed Queue (UDQ) on Weblogic Server
    http://middlewaremagic.com/weblogic/?p=3747
    Regards,
    Ravish Mody

  • What is the association between JMS Server and JMS Module in weblogic 10?

    Hi,
    I have a created a ConnectionFactory, Queue, Topic under JMS Modules in Weblogic Server 10 using admin console.
    And I have created a JMS Server and Targetted to the current running server (Admin Server).
    But when I run the Queue Sender program it is unable to LookUP the jndi which I gave for Queue.
    queue = (Queue) initialContext.lookup("jndi_queue");
    Exception:
    javax.naming.NameNotFoundException: Unable to resolve 'jndi_queue'.
    But I configured this jndi name when I create the Queue in JMS Module in Weblogic Server 10.
    How JMS Module and JMS server are associated.
    My Doubt is if i have several JMS Modules and only one JMS Server created then how does the JMS Server identifies which Queue/Topic belongs to which JMS Module????
    Please advice.
    Thanks....

    Hi,
    Once you have JMS servers configured:
    Step 1: Target the JMS configuration module to the cluster that will host the destination, or, if not using clustering, target the module to the individual WL server that will host the JMS server.
    Step 2: Configure a "subdeployment" for the module and set it to reference the exact JMS server(s) that will host the destination. If you're using a distributed desitnation, you can specify multiple JMS servers, if you're using a regular destination, only specify a single destination.
    Step 3: Create a destination resource in the module, and set its subdeployment to the subdeployment you specified in step 1 (the console calls this "advanced targeting"). As a best practice avoid the "default targeting" option for the resource - always choose subdeployment (advanced) targeting.
    For more information, reference the "best practices" chapter of the JMS configuration guide:
    http://download.oracle.com/docs/cd/E14571_01/web.1111/e13738/best_practice.htm#CACJCGHG
    I also I highly recommend the JMS chapter of the book "Professional Oracle WebLogic".
    Hope this helps,
    Tom

  • Need separate duplicate JMS modules for each server?

    Using WebLogic 9.2.2 on AIX 5.3.
    I'm trying to set up a domain with 6 managed servers. I need to deploy several JMS queues and a foreign server to each JMSServer on each server. I looked at the JMSModule object, and I'm trying to determine whether it's possible to define a single JMSModule that I can deploy to all of my servers. So far, this doesn't appear to be possible. As a result, I have to do tons of painful cut/paste inside the console. Is this how it's supposed to work?

    David,
    Sorry, if I was not clear earlier.
    A Module can be targeted to a single Cluster, one or more comma separated list of WLS servers and the servers don't have to be part of a cluster (note that certain resources such as UDD or CF that can be targeted to an entire cluster, cannot be done so, if the module is not targeted to the cluster. And to achieve the same, the user has to manually add/remove the managed servers to the list of Module's/sub-deployment's targets whenever a server is added or removed to/from the cluster/domain).
    So, in your case, you can define all the JMS resources for that domain in a single Module descriptor and deploy it to a list of all the managed servers. Then you can use the sub-deployments to group and target them onto other related targets (for example, one or more queues can be grouped as a sub-deployment and targeted to a single JMSServer that is hosted by one of the WLS server instance, where the Module is currently targeted to, etc).
    I believe you are creating/using a "system resource" type module via Admin console, the JMSModules wizard shall walk you through the targeting page, where you can see all the available target servers/clusters.
    Here is an example of config.xml snippet for this kind of module targeting :
    <jms-system-resource>
    <name>SystemModule-0</name>
    <target>Server-0,Server-1</target>
    <sub-deployment>
    <name>ConnectionFactory-0</name>
    <target>Server-0,Server-1</target>
    </sub-deployment>
    <sub-deployment>
    <name>Queues</name>
    <target>JMSServer-0</target>
    </sub-deployment>
    <descriptor-file-name>jms/systemmodule-0-jms.xml</descriptor-file-name>
    </jms-system-resource>
    and the corresponding JMS module descriptor file snippet (can be found under DOMAIN_DIR/config/jms dir) as shown below:
    <?xml version='1.0' encoding='UTF-8'?>
    <weblogic-jms xmlns="http://www.bea.com/ns/weblogic/weblogic-jms" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:wls
    ="http://www.bea.com/ns/weblogic/90/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/
    /www.bea.com/ns/weblogic/weblogic-jms http://www.bea.com/ns/weblogic/weblogic-jms/1.0/weblogic-jms.xsd">
    <connection-factory name="ConnectionFactory-0">
    <sub-deployment-name>ConnectionFactory-0</sub-deployment-name>
    <jndi-name>ConnectionFactory-0</jndi-name>
    <security-params>
    <attach-jmsx-user-id>false</attach-jmsx-user-id>
    </security-params>
    </connection-factory>
    <queue name="Queue-0">
    <sub-deployment-name>Queues</sub-deployment-name>
    <jndi-name>Queue-0</jndi-name>
    </queue>
    </weblogic-jms>
    That being said, depending on, how many resources (factories, destinations etc) you are having and how you are going to group them, you may end of with too many sub-deployments within a single module, for which you need to carefully select targets/manage them.
    Both approaches (one module descriptor with many sub-deployments and many module descriptors with fewer sub deployments) have positives and negatives, when its comes to manageability. The recommended best practice is to have the JMS resource configuration split into more than one module with fewer number of sub-deployments within each, to have finer control over the resource configuration/management.
    Sounds like, you are trying to configure one queue on every managed server, that has duplicate(same) configuration properties. If that is the case, you can try using the UDD (Uniform Distributed Destination), that comes with automatic member (physical destination) management on all of its targets. That way, all you need is one UDD resource configuration/sub-deployment in the module and target the sub-deployment to the same targets as the module's targets (or accept the default targeting option, if available in the resource targeting page).
    More information on UDDs can be found here:
    http://edocs.bea.com/wls/docs100/jms/dds.html#wp1313025
    Hope this helps.
    Thanks
    Kats

  • JMS Module, Foreign Server: Destination unreachable

    Hi,
    In our OSB setup we have 2 weblogic domains (on RHEL5), one for hosting the OSB services and one that is used solely for the purpose of JMS messsaging.
    Therefore we have configured a Foreign Server in our JMS Module on the OSB Domain with following config:
    * JNDI Initial Context Factory: weblogic.jndi.WLInitialContextFactory
    * JNDI Connection URL: t3://fsb-jms1-dev:7901,fsb-jms2-dev:7901
    After deploying an EJB that makes use of this module we see following error in our log files every time when starting a Managed Server:
    ####<Jun 8, 2011 11:36:48 AM CEST> <Warning> <EJB> <esddev148> <osbms1> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <11d1def534ea1be0:-27013fcb:1306e9a12ac:-8000-0000000000000016> <13075
    25808959> <BEA-010061> <The Message-Driven EJB: MessageLogWriter is unable to connect to the JMS destination: fsb.jms.MessageLoggingQueue. The Error was:
    javax.naming.CommunicationException [Root exception is java.rmi.ConnectException: Could not establish a connection with 3499163233583403748S:fsb-jms1-dev:[7901,-1,-1,-1,-1,-1,-1]:fsb-jms1-dev:7901,fsb-jms2-dev:7901:jmsdevdomain:jmsms1, java
    .rmi.ConnectException: Destination unreachable; nested exception is:
    java.io.IOException: Empty server reply; No available router to destination; nested exception is:
    java.rmi.ConnectException: Destination unreachable; nested exception is:
    java.io.IOException: Empty server reply; No available router to destination]
    at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:64)
    at weblogic.jndi.internal.WLContextImpl.translateException(WLContextImpl.java:470)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:426)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:411)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at weblogic.deployment.jms.ForeignOpaqueReference.getReferent(ForeignOpaqueReference.java:221)
    at weblogic.jndi.internal.WLNamingManager.getObjectInstance(WLNamingManager.java:96)
    at weblogic.jndi.internal.ServerNamingNode.resolveObject(ServerNamingNode.java:377)
    at weblogic.jndi.internal.BasicNamingNode.resolveObject(BasicNamingNode.java:856)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:209)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
    at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:411)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at weblogic.jms.common.CDS$2.run(CDS.java:486)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.jms.common.CrossDomainSecurityManager.runAs(CrossDomainSecurityManager.java:131)
    at weblogic.jms.common.CDS.lookupDestination(CDS.java:480)
    at weblogic.jms.common.CDS.lookupDDAndCalloutListener(CDS.java:345)
    at weblogic.jms.common.CDS.access$100(CDS.java:41)
    at weblogic.jms.common.CDS$DDListenerRegistrationTimerListener.timerExpired(CDS.java:193)
    at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    Caused by: java.rmi.ConnectException: Could not establish a connection with 3499163233583403748S:fsb-jms1-dev:[7901,-1,-1,-1,-1,-1,-1]:fsb-jms1-dev:7901,fsb-jms2-dev:7901:jmsdevdomain:jmsms1, java.rmi.ConnectException: Destination unreachab
    le; nested exception is:
    java.io.IOException: Empty server reply; No available router to destination; nested exception is:
    java.rmi.ConnectException: Destination unreachable; nested exception is:
    java.io.IOException: Empty server reply; No available router to destination
    at weblogic.rjvm.RJVMImpl.getOutputStream(RJVMImpl.java:352)
    at weblogic.rjvm.RJVMImpl.getRequestStreamInternal(RJVMImpl.java:612)
    at weblogic.rjvm.RJVMImpl.getRequestStream(RJVMImpl.java:563)
    at weblogic.rjvm.RJVMImpl.getOutboundRequest(RJVMImpl.java:789)
    at weblogic.rmi.internal.BasicRemoteRef.getOutboundRequest(BasicRemoteRef.java:159)
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:341)
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
    at weblogic.jndi.internal.ServerNamingNode_1034_WLStub.lookup(Unknown Source)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:423)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:412)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at weblogic.deployment.jms.ForeignOpaqueReference.getReferent(ForeignOpaqueReference.java:221)
    at weblogic.jndi.internal.WLNamingManager.getObjectInstance(WLNamingManager.java:96)
    at weblogic.jndi.internal.ServerNamingNode.resolveObject(ServerNamingNode.java:377)
    at weblogic.jndi.internal.BasicNamingNode.resolveObject(BasicNamingNode.java:856)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:209)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
    at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:412)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at weblogic.jms.common.CDS$2.run(CDS.java:486)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.jms.common.CrossDomainSecurityManager.runAs(CrossDomainSecurityManager.java:131)
    at weblogic.jms.common.CDS.lookupDestination(CDS.java:480)
    at weblogic.jms.common.CDS.lookupDDAndCalloutListener(CDS.java:345)
    at weblogic.jms.common.CDS.access$100(CDS.java:41)
    at weblogic.jms.common.CDS$DDListenerRegistrationTimerListener.timerExpired(CDS.java:194)
    ... 4 more
    Caused by: java.rmi.ConnectException: Destination unreachable; nested exception is:
    java.io.IOException: Empty server reply; No available router to destination
    at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:470)
    at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:402)
    at weblogic.rjvm.RJVMImpl.ensureConnectionEstablished(RJVMImpl.java:306)
    at weblogic.rjvm.RJVMImpl.getOutputStream(RJVMImpl.java:350)
    at weblogic.rjvm.RJVMImpl.getRequestStreamInternal(RJVMImpl.java:613)
    ... 30 more
    >
    I've allready ensured that the managed servers of the jms cluster are reachable by issuing a connect command from WLST (although making the connection can be time consuming)
    wls:/offline> connect('weblogic','******','t3://fsb-jms1-dev:7901')
    Connecting to t3://fsb-jms1-dev:7901 with userid weblogic ...
    Successfully connected to managed Server 'jmsms1' that belongs to domain 'jmsdevdomain'.
    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.
    wls:/jmsdevdomain/serverConfig> disconnect()
    Disconnected from weblogic server: jmsms1
    wls:/offline> connect('weblogic','******','t3://fsb-jms2-dev:7901')
    Connecting to t3://fsb-jms2-dev:7901 with userid weblogic ...
    Successfully connected to managed Server 'jmsms2' that belongs to domain 'jmsdevdomain'.
    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.
    In my search for a solution I've also read that this could be caused by a bad configured DNS server. Therefore I configured my /etc/nsswitch.conf file to contain only the property files under the parameter hosts.
    Following is an extraction of my /etc/hosts file:
    10.16.85.50 fsb-jms1-dev.localdomain fsb-jms1-dev
    10.16.85.51 fsb-jms2-dev.localdomain fsb-jms2-dev
    10.16.85.52 fsb-osb1-dev.localdomain fsb-osb1-dev
    10.16.85.53 fsb-osb2-dev.localdomain fsb-osb2-dev
    Does anybody have an idea how I can further debug this problem?
    Kind Regards,
    Davy

    Maybe this is of some help: http://www.bea-weblogic.com/namenotfoundexception-when-configuring-foreign-jms-server.html

  • Queue loses messages during JMS Module untargeting.

    Hello,
              I have JMS Module with a Queue. I use persistent store for the queue.
              I send some messages to the Queue and i can see them present in monitoring window in Administration console, as well as in WLStore table in db.
              When i untarget JMS module and then target it again. The messages are still present in WLStore table, but they are not present in the Queue anymore.
              Is this proper behaviour?
              thanks in advance,
              regards,
              Jakub Straszewski

    configure a JMS BS with following details Business Service Configuration (default/gfdg)
    General Configuration      
    Service Type      Any XML Service
    Transport Configuration      
    Protocol      jms
    Endpoint URI      
    jms://localhost:7001/weblogic.jms.XAConnectionFactory/gfdgRequest
    JMS Transport Configuration      
    Destination Type      Queue
    Is Response Required      ENABLED
    Response Correlation Pattern      JMSCorrelationID
    Response URI      jms://localhost:7001/weblogic.jms.XAConnectionFactory/gfdgResponse
    Response Timeout      0

  • Edit of Foreign JMS module in admin console causes redeployment error

    A JMS module (-jms.xml) for a foreign JMSServer specifies the url of the real JMS server. I am trying to use a deployment plan to make this url a deployment property.
    Following the instructions in "Configuring and Managing Weblogic JMS" and "Deploying Applications to Weblogic Server", I have deployed the module with a fixed URL, and then attempt to edit the url in the admin console. The admin console correctly creates a deployment plan to hold modified value, but then can't redeploy the module due to errors during deployment.
    I experience these errors with the module deployed stand-alone, or when bundled with my enterprise application. I also get the same error if I produce the deployment plan using the PlanGenerator.
    The error seems to be a bug in the deployment plan machinery, since the xpath it produces for the variable-application does not match the xml schema for <weblogic-jms>. The plan.xml refers to "/weblogic-jms/foreign-server[name="IQN_OLTP_FOREIGN_JMS_Server"]/connectionurl" while the schema defines "/weblogic-jms/foreign-server/connection-url".
    Any advice would be welcome.
    We are running 9.2 SP3.
    The messages in the admin console logs are:
    ####<Jan 22, 2009 12:07:02 PM MST> <Info> <J2EE> <truman> <IQN_ADMIN_SERVER> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (
    self-tuning)'> <system> <> <> <1232651222010> <BEA-160166> <References were found in deployment plan for module 'IQN_JMS_OLTP_FOREIGN-jms.xml'
    with uri, '.'. The plan was merged.>
    ####<Jan 22, 2009 12:07:02 PM MST> <Error> <J2EE> <truman> <IQN_ADMIN_SERVER> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default
    (self-tuning)'> <system> <> <> <1232651222024> <BEA-160197> <Unable to load descriptor weblogic.deploy.api.spi.config.DescriptorParser$1@1c7654
    8 finder: weblogic.utils.classloaders.CodeGenClassFinder@1ca6109 annotation: /. of module IQN_JMS_OLTP_FOREIGN-jms.xml. The error is weblogic.d
    escriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND
    problem: cvc-complex-type.2.4a: Expected elements 'jndi-properties-credential-encrypted@http://www.bea.com/ns/weblogic/90 jndi-property@http:
    //www.bea.com/ns/weblogic/90' instead of 'default-targeting-enabled@http://www.bea.com/ns/weblogic/90' here in element foreign-server@http://ww
    w.bea.com/ns/weblogic/90:<null>
    problem: cvc-complex-type.2.4a: Expected elements 'jndi-properties-credential-encrypted@http://www.bea.com/ns/weblogic/90 jndi-property@http:
    //www.bea.com/ns/weblogic/90' instead of 'foreign-destination@http://www.bea.com/ns/weblogic/90' here in element foreign-server@http://www.bea.
    com/ns/weblogic/90:<null>
    problem: cvc-complex-type.2.4a: Expected elements 'jndi-properties-credential-encrypted@http://www.bea.com/ns/weblogic/90 jndi-property@http:
    //www.bea.com/ns/weblogic/90' instead of 'foreign-destination@http://www.bea.com/ns/weblogic/90' here in element foreign-server@http://www.bea.
    com/ns/weblogic/90:<null>
    problem: cvc-complex-type.2.4a: Expected elements 'jndi-properties-credential-encrypted@http://www.bea.com/ns/weblogic/90 jndi-property@http:
    //www.bea.com/ns/weblogic/90' instead of 'foreign-connection-factory@http://www.bea.com/ns/weblogic/90' here in element foreign-server@http://w
    ww.bea.com/ns/weblogic/90:<null>
    problem: cvc-complex-type.2.4a: Expected elements 'jndi-properties-credential-encrypted@http://www.bea.com/ns/weblogic/90 jndi-property@http:
    //www.bea.com/ns/weblogic/90' instead of 'foreign-connection-factory@http://www.bea.com/ns/weblogic/90' here in element foreign-server@http://w
    ww.bea.com/ns/weblogic/90:<null>
    /home/jbullock/development/patch841/domains/IQN/nullplan.xml:0: problem: cvc-complex-type.2.4a: Expected elements 'jndi-properties-credential
    -encrypted@http://www.bea.com/ns/weblogic/90 jndi-property@http://www.bea.com/ns/weblogic/90' instead of 'connectionurl@http://www.bea.com/ns/w
    eblogic/90' here in element foreign-server@http://www.bea.com/ns/weblogic/90:<nullplan.xml>

    I also tried this, without success. Changing the deployment plan to use the element name "connection-url" leads to a different error during deployment:
    <Info> <J2EE Deployment SPI> <BEA-260121> <Initiating deploy operation for application, IQN_JMS_OLTP_FOREIGN [archive: ../../package/jms/IQN_JMS_OLTP_FOREIGN-jms.xml], to IQN_BATCH IQN_OLTP1 .>
    plan xpath defines an element [connection-url] that is not valid!(There is also a subtle variation in the xpath used in the deployment plan: It isn't clear whether the deployer expects /weblogic-jms/foreign-server/[name="IQN_OLTP_FOREIGN_JMS_Server"]/connection-url or /weblogic-jms/foreign-server[name="IQN_OLTP_FOREIGN_JMS_Server"]/connectionurl. The former, although not really correct XPath syntax, seems to be required for other elements, but in this case, the PlanGenerator emits latter, which is correct XPath, but has the wrong element name.)
    Edited by: John Bullock on Jan 26, 2009 11:59 AM

  • Weblogic 10 Ant task, JMS Module & Foreign JMS Destinations

    Any body knows how to configure JMS System Modules (which got introduced in WL ver. 9) and other JMS MBeans such as JMS Destinations and ConnectionFactories under the newly created JMS Module, using ant task for Weblogic 10.3 ?
    Also, when I create the ForeignJMSServer and the child MBeans such as Foreign Destinations and ConnectionFactories using ant task, it just creates the ForeignJMSServer and not creating the child MBeans. The problem is with WL 10. In WL 8.1, it works fine.
    In Weblogic 8.1, þe ant target for this job is as follows.
    ===========================================================================
         <target name="prepareForeignJMSServer">
    <wlconfig url="t3://localhost:7001" username="weblogic"
    password="weblogic" failonerror="false">
    <create type="ForeignJMSServer" name="myForeignJMSServer" property="temp-jms-server">
    <set attribute="InitialContextFactory" value="weblogic.jndi.WLInitialContextFactory"/>
    <set attribute="ConnectionURL" value="t3://192.168.0.23:7001"/>
    <set attribute="Targets" value="mydomain:Name=myserver,Type=Server"/>
    <create type="ForeignJMSConnectionFactory" name="MyRemoteCF">
    <set attribute="LocalJNDIName" value="MyLocalCFJNDI"/>
    <set attribute="RemoteJNDIName" value="MyRemoteCFJNDI"/>
    <set attribute="Username" value="weblogic-remote"/>
    <set attribute="Password" value="weblogic-remote"/>
    </create>
    <create type="ForeignJMSDestination" Name="MyRemoteQueue1">
    <set attribute="LocalJNDIName" value="MyLocalQueue1JNDI"/>
    <set attribute="RemoteJNDIName" value="MyRemoteQueue1JNDI"/>
    </create>
         </create>
              </wlconfig>
         </target>
    =====================================================================
    This target runs without error in WL 10, but does not create the ForeignJMSConnectionFactory and ForeignJMSDestination.
    If some one knows the solution, please give me advice.
    Thanks,

    Maybe this is of some help: http://www.bea-weblogic.com/namenotfoundexception-when-configuring-foreign-jms-server.html

  • JMS MODULE SECURITY IN WEBLOGIC

    Hi,
    I have one JMS Module that having two queues. I have to create the one user who will read and write the data.
    That user do not have the access to the console so that this user will not create and delete resources in the server as well start and stop the server.
    Could you please help me how to put the security for that user?
    I have already tried below mentioned  steps, but this is only for securing queues with indidual user.
    http://weblogic-wonders.com/weblogic/2011/02/01/securing-weblogic-jms-resources/
    Advance Thanks,
    Anil.

    Hi Arun,
    A NullPointerException is almost always an indication of a bug (99% of the time), and rarely an indicator of user error.
    If the NPE is thrown by WebLogic code (and not app code), I recommend filing a customer support case (or if you happen to be on old version or service-pack, updating to the latest).
    As for your configuration change, it will very likely take effect upon a cluster restart regardless of the NPE - (the NPE, based on your description, is likely a localized problem with the console). You can check your JMS module XML to see if the console change was reflected in the configuration file...
    Tom

  • Accessing JMS UDD deployed on OSB cluster from a composite JMS adapter deployed on soa cluster

    Our environment setup
    Single domain with three clusters
    osb_cluster.soa_cluster and   bam_cluster
    osb_cluster: osb_server1 and osb_server2
    wlsbJMSServer_auto_1: targetted to osb_server1
    wlsbJMSServer_auto_2: targetted to osb_server2
    osb_subdeployment1:targetted to wlsbJMSServer_auto_1 and wlsbJMSServer_auto_2 JMS servers
    osb_subdeployment1 has JMS UDD queue jms/wlsb/queue
    soa_cluster: soa_server1 and soa_server2
    There is a BPEL composite deployed to soa_cluster. It has JMS adapter trying to read messages from jms/wlsb/queue
    JCA JMSAdapter is deployed to osb,soa clusters and Admin server
    ConnectionFactory is targetted to soa and osb clusters (osb_cluster and soa_cluster)
    We have bounced soa and osb  servers(not admin) after jms changes.
    soa log says
    JMSAdapter Composite1l JmsDDEndpoint_onFailure: Unable to resolve 'jms.wlsb.queue. Resolved 'jms'
    Can we access JMS destinations deployed  on one cluster from different cluster?
    If yes, how can we do that ? do we need  to modify BPEL JCA file to indicate destination is on another cluster?
    Thanks,
    Praveen

    Anybody has faced similar issue?

  • Cannot create jms module, unusual error

    I'm not sure what happened, but this was working before, but I can no longer create a jms module. I need to create a jms module, but every time I try to activate my changes, I get this error. Has anyone ran into this before that could shed some light? This is running in production mode with ADF libraries installed.
    <9-Aug-2012 6:31:22 o'clock PM PDT> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating activate task for application 'SystemModule-2'.>
    <9-Aug-2012 6:31:22 o'clock PM PDT> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
    weblogic.application.ModuleException:
    at weblogic.jms.module.ModuleCoordinator.activate(ModuleCoordinator.java:247)
    at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:227)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$2.next(DeploymentCallbackFlow.java:541)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:175)
    Truncated. see log file for complete stacktrace
    Caused By: weblogic.cluster.migration.GroupActivationException: cause is: weblogic.management.DeploymentException:
    at weblogic.cluster.migration.MigratableGroup.activateAllMigratables(MigratableGroup.java:350)
    at weblogic.cluster.migration.MigratableGroup.activate(MigratableGroup.java:337)
    at weblogic.cluster.migration.MigrationManager.privateRegister(MigrationManager.java:255)
    at weblogic.cluster.migration.MigrationManager.register(MigrationManager.java:192)
    at weblogic.jms.module.ModuleCoordinator.activate(ModuleCoordinator.java:243)
    Truncated. see log file for complete stacktrace
    >
    <9-Aug-2012 6:31:22 o'clock PM PDT> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating redeploy task for application 'Module-FMWDFW'.>
    <9-Aug-2012 6:31:22 o'clock PM PDT> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
    weblogic.application.ModuleException:
    at weblogic.jms.module.ModuleCoordinator.activate(ModuleCoordinator.java:247)
    at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:227)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$2.next(DeploymentCallbackFlow.java:541)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:175)
    Truncated. see log file for complete stacktrace
    Caused By: weblogic.cluster.migration.GroupActivationException: cause is: weblogic.management.DeploymentException:
    at weblogic.cluster.migration.MigratableGroup.activateAllMigratables(MigratableGroup.java:350)
    at weblogic.cluster.migration.MigratableGroup.activate(MigratableGroup.java:337)
    at weblogic.cluster.migration.MigrationManager.privateRegister(MigrationManager.java:255)
    at weblogic.cluster.migration.MigrationManager.register(MigrationManager.java:192)
    at weblogic.jms.module.ModuleCoordinator.activate(ModuleCoordinator.java:243)
    Truncated. see log file for complete stacktrace
    >
    <9-Aug-2012 6:31:23 o'clock PM PDT> <Error> <Console> <BEA-240003> <Console encountered the following error weblogic.application.ModuleException:
    at weblogic.jms.module.ModuleCoordinator.activate(ModuleCoordinator.java:247)
    at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:227)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$2.next(DeploymentCallbackFlow.java:541)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:175)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:167)
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:636)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:205)
    at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:43)
    at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116)
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:844)
    at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1253)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:440)
    at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    Caused by: weblogic.cluster.migration.GroupActivationException: cause is: weblogic.management.DeploymentException:
    at weblogic.cluster.migration.MigratableGroup.activateAllMigratables(MigratableGroup.java:350)
    at weblogic.cluster.migration.MigratableGroup.activate(MigratableGroup.java:337)
    at weblogic.cluster.migration.MigrationManager.privateRegister(MigrationManager.java:255)
    at weblogic.cluster.migration.MigrationManager.register(MigrationManager.java:192)
    at weblogic.jms.module.ModuleCoordinator.activate(ModuleCoordinator.java:243)

    I think the following can be a possible problems:
    a. Cluster communication issue (which can be checked using admin console > cluster > cluster_name > monitoring.
    b. Problem with the JMS server hosts. Check whether there are any issues with the migration setup?
    Just a quick search lead to:
    https://confluence.nau.edu/confluence/plugins/viewsource/viewpagesrc.action?pageId=4522139
    This thread is talking about the same exception due to migration.

  • How to add an out-of-box JMS modules?

    Hi,
    I am using WebLogic Server 10.3. For my project, I need to add some out-of-box JMS modules so that there is no need to ask the administrators to create and configure them. I wonder how I can achieve this. Is it good enough just to make changes on the config/config.xml and add a corresponding *-jms.xml?
    Thank you,
    Yang

    Here's a more sophisticated version of the script Kats supplied. It is a bit more flexible, and works around issues that can arise if too many changes are attempted within the same edit session.
    # Sample WLST code for creating a simple WebLogic JMS
    # configuration using WLST.
    # This script sets up two JMS servers on the same
    # WebLogic server, each with a queue and a topic.
    import sys
    from java.lang import System
    # A method for finding an mbean.
    # It uses "cd()" rather than getMBean() as "cd()" works in more cases.
    def findMBean(path):
        savePWD=pwd()
        try:
            cd(path)
            value=cmo
            cd(savePWD)
            return value
        except:
            print ' --- Please ignore the previous *No stack trace available.* message.'
            cd(savePWD)
            return None
    # A method for creating a JMS server.
    def findOrCreateJMSServer(serverMBean, jmsServerName):
        jmsServerMBean = findMBean('JMSServers/'+jmsServerName)
        if jmsServerMBean is not None:
            print ' --- JMS Server '+jmsServerName+' already exists.'
            return jmsServerMBean
        startEdit()
        jmsServerMBean = create(jmsServerName,'JMSServer')
        jmsServerMBean.addTarget(serverMBean)
        save()
        activate(block="true")
        print ' --- JMS Server '+jmsServerName+' created.'
        return jmsServerMBean
    # A method for creating a JMS module for hosting JMS config,
    # also creates a subdeployment named 'TheOne' for the JMS server.
    # The module target is set to be the same target that's used
    # for the passed in JMS server.
    def findOrCreateJMSModule(jmsServerMBean, moduleName):
        jmsResource = findMBean('JMSSystemResources/'+moduleName)
        if jmsResource is not None:
            print ' --- Module '+moduleName+' already exists.'
            return jmsResource
        startEdit()
        jmsResource = create(moduleName,'JMSSystemResource')
        jmsResource.addTarget(jmsServerMBean.getTarget())
        subD = jmsResource.createSubDeployment('TheOne')
        subD.addTarget(jmsServerMBean)
        save()
        activate(block="true")
        print ' --- Module '+moduleName+' created.'
        return jmsResource
    # A method for creating a JMS destination.   Pass 'Queue' or 'Topic'
    # for destType.  This method assumes subdeployment named 'TheOne'.
    def findOrCreateJMSDest(destType, jmsModule, destName, destJNDIName):
        # see if dest already exists
        moduleName=jmsModule.getName()
        longname='JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName
        if (destType == 'Queue'):
          longname+='/Queues/'+destName
        elif (destType == 'Topic'):
          longname+='/Topics/'+destName
        else:
          raise Exception('Unknown dest type '+destType)
        jmsDest = findMBean(longname)
        if jmsDest is not None:
          print ' --- Destination '+destName+' already exists.'
          return jmsDest
        # dest does not exist, create it
        startEdit()
        if (destType == 'Queue'):
          jmsDest = jmsModule.getJMSResource().createQueue(destName)
        else:
          jmsDest = jmsModule.getJMSResource().createTopic(destName)
        jmsDest.setJNDIName(destJNDIName)
        jmsDest.setSubDeploymentName('TheOne')
        save()
        activate(block="true")
        print ' --- Destination '+destName+' created.'
        return jmsDest
    # Connect to a WebLogic Admin Server. When username, password
    # and URL are not passed as arguments, connect will prompt
    # for these values.
    #connect('system','mypassword','t3://mymachine:7001')
    connect()
    edit() # Navigate to the root of the config MBean tree.
    print ' --- Enter the name of the WLS server that will host the JMS servers.'
    print ' --- Choices: ---'
    ls('Servers')
    print ' ----------------'
    print ' --- --> ',
    wlServerName=sys.stdin.readline().strip()
    svMBean=findMBean("Servers/"+wlServerName)
    if svMBean is None:
        print ' --- WebLogic server '+wlServerName+' not found.'
        stopExecution(' --- Cannot find the WebLogic myserver '+wlServerName)
    try:
          jmsServerMBean = findOrCreateJMSServer(svMBean, 'MyJMSServer')
          jmsModule = findOrCreateJMSModule(jmsServerMBean, 'MyJMSModule')
          findOrCreateJMSDest('Queue', jmsModule, 'MyQueue', 'MyQueue')
          findOrCreateJMSDest('Topic', jmsModule, 'MyTopic', 'MyTopic')
        print ' --- Configuration complete.'
    except:
        dumpStack()
        print ' --- Error, admin server log may contain details!!!'
        stopEdit('y')

  • Offline WLST changes JMS Server Target From a Migratable target

    I have a simple WL 9.2mp2 domain which has 2 managed servers, one JMS Server and two migratable targets (one for each managed server) and the JMS server is targeted to one of the migratable targets. When I read the domain into WLST offline, the JMS server's target is changed from the migratable target to the preferred server defined in the migratable target. Is this a bug in WLST? Am I missing some option on WLST that can fix this?
              I saw a similar posting for 8.1 and no resolution.
              Thanks in advance,
              Mark.

    Hi
              Please find my answers below:
              Q1:
              It depends how you configured the JMSSevers.
              If both the JMSServers are targeted to the same MigratableTarget, then you do the migration only once, that will move both of them to the new active server.
              If not, you have to perform the migration once for each MT.
              Q2:
              No, you dont have to start the Managed Server II, unless otherwise you wanted it to be readily available for the migration next time.
              Q3:
              You can just repeat the migration process by specifying the destination as Maganged Server-I this time. You dont need change the configuration for this, since the MT, shall already have the Candidate servers M1 and M2 and both JMSServers are targeted to MT.
              Q4:
              Yes, as long as the CF is targeted to the cluster, your connection is valid. But your destinations references will become invalid after migration, so you have to have some logic in the exception listeners to reconnect again.
              Hope this helps.

Maybe you are looking for

  • Nokia Lumia 630 3G Problem

    Hi All, I have recently purchased the New Nokia 630,however I am facing some issues in 3G connectivity of the SIM.The SIM catches 3G network but it dosen't Transfers data.The Symbol on the top near signal strength shows H but doesn't loads any page.I

  • Why is update of illustrator cc, indesign cc and dreamweaver proposed while I have only CS6 for those and Photoshop in CC as a license ?

    I have the CC programme for photographer so only Bridge, Photoshop and LR I had CS6 designer premium so I have still Illustrator CS6,indesign CS6, dreameaver CS6 Since the new cc 2014 I am proposed each time a upgrade to Illustrator cc instead of a t

  • Apache 2.2.17-2 Segmentation Fault

    Hi, I just upgraded apache to the 2.2.17-2 version and now all my php/mysql pages that have a login ($_SESSION) crash the server (apache child segfaults): [Tue May 10 12:50:54 2011] [notice] child pid 11446 exit signal Segmentation fault (11) Anyone

  • Laser printers and legal size documents

    I'm now a college freshman. My Canon MP760's color cartridges behaved funny. Thus I am looking for a replacement. I'm planning to go into law school, so ability to print legal size (8.5x14?) is crucial. 90% of my printing is b/w so I figure on gettin

  • Is there a way to get Num Lock?

    I know how to get Shift Lock but is there a way to get Num Lock? If I am entering numbers and press the space bar (ie in the notepad) the keyboard automatically goes back to letters.... If there is a Shift Loc then surely there is a Num lock somewher