Additional JMS Destination Attributes

How can I associate additional attributes to an Administered Object in
          JNDI? Specifically, I want to add a JMS Destination (Queue) to the
          JNDI context. I want the Queue to also have 2 additional attributes
          for my application to process. The additional attributes I need to
          associate with the Administered Queue Object are: Reply-To-Queue and a
          boolean value (log message or don't log message).
          I went into the JNDI namespace (iPlanet Directory Server in this
          case), and manually added additional attributes in the
          javaReferenceAddress. The JMS API did not choke on this, but I can't
          figure out a way to expose this either.
          

I found that if I in the JMS receiver queue tick Specify Additional JMS Message Properties (Maximum of 10) and provide the name JMSReplyTo and the value Sting I can collect the ReplyTo queue name via a parameter in the operation mapping and the value of that parameter I can set to the Dynamic Configuration variable DCJMSMessageProperty0 in a UDF like this:
String x = container.getInputParameters().getString("replyToQueueName");
DynamicConfiguration conf1 = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION) ;
DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSMessageProperty0") ;
conf1.put(key1, x);
return "";

Similar Messages

  • Specifying additional JMS message attributes in Sender Adapter

    Hi,
    Iam using sender JMS adapter and I have to use the option " Specify Additional JMS Message Properties" for adding addtionalJMS properties in XI message header.
    Once I cselect the option in the below table  Iam not able to add new lines to add addtional JMS Message Properties..But In receiver adapter I was able to add the new lines.
    Is this option graded in SAP PI 7.3 or relatd to any authorization issue..?
    Is anyone faced this issue before.. Please help me out
    Thank you

    Hi everybody
    I'm starting a project where I have to take adptadores JMS and I'm in the same situation kirian, I am need to configure a JMS adapter  with version of SAP PI 7.3 and I wonder if anyone can help me or give me manuals leagues where information comes related.
    Someone can help me with this information
    Regards

  • Creating more then one JMS Destination using MBeans

    Hi all,
    I am trying to create 2(or more) JMS Destinations (Topics and Queues) in a JMS Server.
    The code looks like:
    MBeanHome home = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
    ServerMBean srvrMBean = (ServerMBean) home.getMBean("examplesServer", "Server",
    "examples");
    JMSServerMBean jmsServer = (JMSServerMBean)home.findOrCreateAdminMBean("examplesServer",
    "JMSServer", "examples");
    jmsServer.setStore(jmsStore);//jmsStore is JMSJDBCStoreMBean obj
    jmsServer.setTargets(srvrMBean);
    JMSDestinationMBean jmsTopic1 = (JMSTopicMBean)home.findOrCreateAdminMBean("tempTopic1",
    "JMSTopic", "examples", jmsServer);
    jmsTopic1.setJNDIName("com.temp.topic1");
    jmsServer.addDestination(jmsTopic1);
    and the second one is added as:
    JMSDestinationMBean jmsTopic2 = (JMSTopicMBean)home.findOrCreateAdminMBean("tempTopic2",
    "JMSTopic", "examples", jmsServer);
    jmsTopic2.setJNDIName("com.temp.topic2");
    jmsServer.addDestination(jmsTopic2);
    (Actually, the Topics are added to the jmsServer in a method)
    I can see in the console that the first topic is added to the JMS server and to the
    JNDItree of the server instance,
    But for some reason, the second topic is not added to the JNDI tree(but it is added
    to the JMS Server).
    and I can not look up the second object in JNDI.
    Does anybody come across this problem??
    what is the right way to add the destinations??
    thanks for any help
    -Vijay

    Hi Mihir,
    thanks....I tried the same program, but the only difference is i am setting the targets
    to the jms server (i.e. jmsServer.setTarget(tm);) before adding second destination
    to it(i tried both setDestinations and addDestination).
    Because, (according to my requirements) after adding the first destination i have
    to set the target for the jmsserver (which eventually starts the JMSserver).
    So, is there any way to add the destinations to the jmsserver after setting the targets??
    thanks for any help
    -Vijay
    "Mihir Kulkarni" <[email protected]> wrote:
    The following code works for me.
    Btw, I use setDestinations and pass it an array of JMSDestinationMBeans
    instead of using addDestinations()
    Hope this helps...
    mihir
    import java.util.Set;
    import java.util.Iterator;
    import java.rmi.RemoteException;
    import javax.naming.*;
    import weblogic.jndi.Environment;
    import weblogic.management.MBeanHome;
    import javax.management.ObjectName;
    import weblogic.management.WebLogicMBean;
    import weblogic.management.MBeanCreationException;
    import weblogic.management.configuration.ServerMBean;
    import weblogic.management.runtime.ServerRuntimeMBean;
    import weblogic.management.WebLogicObjectName;
    import weblogic.management.configuration.*;
    import javax.management.InvalidAttributeValueException;
    /* Running this program will create a JMS Server and a JMS Connection
    * Factory targetted to the Admin server. It will also add a JMS Topic
    * and a JMS Queue to the JMSServer.
    * This will create the following entries in the config.xml:
    * <JMSServer Name="myJMSServer" Targets="MyServer">
    * <JMSQueue JNDIName="jmx.jms.myJMSQueue" Name="myJMSQueue"/>
    * <JMSTopic JNDIName="jmx.jms.myJMSTopic" Name="myJMSTopic"/>
    * </JMSServer>
    * <JMSConnectionFactory JNDIName="jmx.jms.myJMSConnectionFactory"
    * Name="myJMSConnectionFactory" Targets="MyServer"/>
    public class createJMS {
    public createJMS() {
    public static void main(String[] args) {
    JMSServerMBean jmsServer = null;
    JMSDestinationMBean jmsQueue = null;
    JMSDestinationMBean jmsTopic = null;
    JMSConnectionFactoryMBean jmsConnectionFactory = null;
    JMSSessionPoolMBean jmsSessionPool = null;
    JMSConnectionConsumerMBean jmsConnectionConsumer = null;
    ServerMBean srvrMBean = null;
    MBeanHome home = null;
    JMSServerMBean jmsServerConfig = null;
    file://domain variables
    String url = "t3://localhost:7001";
    String username = "system";
    String password = "mihirk00";
    file://variable Names
    String DOMAIN = "mihirDomain";
    String ADMINSERVERNAME = "MyServer";
    String JMSSERVER = "myJMSServer";
    String JMSCONNECTIONFACTORY = "myJMSConnectionFactory";
    String JMSQUEUE = "myJMSQueue";
    String JMSTOPIC = "myJMSTopic";
    log("Creating AdminMBeans for JMS queue and JMS connection
    factory");
    try
    Environment env = new Environment();
    env.setProviderUrl(url);
    env.setSecurityPrincipal(username);
    env.setSecurityCredentials(password);
    Context ctx = env.getInitialContext();
    home = (MBeanHome)ctx.lookup("weblogic.management.adminhome");
    log("Got AdminHome: " + home);
    String name = DOMAIN + ":,Name=" + ADMINSERVERNAME + ",Type=Server"
    WebLogicObjectName objName = new WebLogicObjectName(name);
    srvrMBean = (ServerMBean)home.getMBean(objName);
    file://srvrMBean =
    (ServerMBean)home.getMBean(ADMINSERVERNAME,"Server",DOMAIN);
    log("Got the serverMBean: " + srvrMBean);
    } catch (Exception e) {
    log("Exception in getting Admin home & srvrMBean: " + e);
    /* the findOrCreateAdminMBean method of the MBeanHome is used to
    create
    * the Admin MBeans for all the JMS stuff needed for this utility
    * the method takes 3 parameters - Name, Type, Domain
    * the type Parameter is the name of the MBean you want to create
    * minus the MBean prefix
    * eg) JMSServer, JMSConnectionFactory, JMSQueue etc..
    * It also takes an addition parameter which is the parent
    AdminMbean
    * if one needs to create a child node in the xml tree.
    * Once the MBean is created you can set attributes on it using
    the
    * exposed API of that MBean
    * Its always better to use the findOrCreateAdminMBean method compared
    * to createAdminMBean method .
    file://use findOrCreateAdminMBean to create JMSConnectionFactory
    try {
    jmsConnectionFactory =
    (JMSConnectionFactoryMBean)home.findOrCreateAdminMBean(JMSCONNECTIONFACTORY,
    "JMSConnectionFactory", DOMAIN);
    if( jmsConnectionFactory.getJNDIName() == null) {
    jmsConnectionFactory.setJNDIName("jmx.jms.myJMSConnectionFactory");
    log("Created a JMSConnectionFactory");
    else
    log("looked up JMS ConnectionFactory: " +
    jmsConnectionFactory.getJNDIName());
    } catch (MBeanCreationException e) {
    log("MBeanCreationException: " + e);
    catch(InvalidAttributeValueException e) {
    log("InvalidAttributeValueException: " + e);
    file://create the JMSServerMBean
    try {
    jmsServer = (JMSServerMBean)home.findOrCreateAdminMBean(JMSSERVER,
    "JMSServer", DOMAIN);
    log("Found or Created a JMSServer");
    } catch (MBeanCreationException e) {
    log("MBeanCreationException: " + e);
    file://create the JMSQueueMBean - use methods of
    JMSDestinationMBean
    file://here we pass the jmsServer as the parent MBean so that the
    file://JMSQueueMBean is created as the child of the JMSServerMBean
    try {
    jmsQueue =
    (JMSDestinationMBean)home.findOrCreateAdminMBean(JMSQUEUE, "JMSQueue",
    DOMAIN, jmsServer);
    if( jmsQueue.getJNDIName() == null) {
    jmsQueue.setJNDIName("jmx.jms.myJMSQueue");
    log("Created a JMSQueue");
    else {
    log("looked up JMS Queue: " + jmsQueue.getJNDIName());
    } catch (MBeanCreationException e) {
    log("MBeanCreationException: " + e);
    catch(InvalidAttributeValueException e) {
    log("InvalidAttributeValueException: " + e);
    file://create the JMSTopicMBean - use methods of
    JMSDestinationMBean
    file://here we pass the jmsServer as the parent MBean so that the
    file://JMSTopicMBean is created as the child of the JMSServerMBean
    try {
    jmsTopic =
    (JMSDestinationMBean)home.findOrCreateAdminMBean(JMSTOPIC, "JMSTopic",
    DOMAIN, jmsServer);
    if( jmsTopic.getJNDIName() == null) {
    jmsTopic.setJNDIName("jmx.jms.myJMSTopic");
    log("Created a JMSTopic");
    else {
    log("looked up JMS Topic: " + jmsTopic.getJNDIName());
    } catch (MBeanCreationException e) {
    log("MBeanCreationException: " + e);
    catch(InvalidAttributeValueException e) {
    log("InvalidAttributeValueException: " + e);
    file://create the target Arrays
    JMSDestinationMBean[] jdm = {jmsQueue,jmsTopic};
    TargetMBean[] tm = {srvrMBean};
    file://set the Destinations for the jms Server
    try {
    jmsServer.setDestinations(jdm);
    log("Added Destination to the jmsServer");
    } catch(Exception e) {
    log("Excpn in setting the property for jmsServer:" + e);
    /* Now target the JMS Server to the appropriate Server
    * As the JMSServerMBean extends the DeploymentMBean, we can
    directly
    * use the addTarget method of the DeploymentMBean
    file://ordering is important
    file://Target the JMS ConnectionFactory
    try {
    jmsConnectionFactory.setTargets(tm);
    log("Targetted the Connection Factory to the admin Server");
    } catch (Exception e) {
    System.out.println("Exception in targetting the
    jmsConnectionFactory to the Admin server: " + e);
    file://Target the JMS Server
    try {
    jmsServer.setTargets(tm);
    log("Targetted the JMS Server to the admin Server");
    } catch (Exception e) {
    System.out.println("\nException in targetting the jmsServer to
    the Admin server: " + e);
    log("Done with registering AdminMBeans for JMS");
    private static void log(String s) {
    System.out.println("\n[createJMS]: " + s);
    "Vijay Bujula" <[email protected]> wrote in message
    news:[email protected]...
    Hi all,
    I am trying to create 2(or more) JMS Destinations (Topics and Queues)in a
    JMS Server.
    The code looks like:
    MBeanHome home = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
    ServerMBean srvrMBean = (ServerMBean) home.getMBean("examplesServer","Server",
    "examples");
    JMSServerMBean jmsServer =(JMSServerMBean)home.findOrCreateAdminMBean("examplesServer",
    "JMSServer", "examples");
    jmsServer.setStore(jmsStore);//jmsStore is JMSJDBCStoreMBean obj
    jmsServer.setTargets(srvrMBean);
    JMSDestinationMBean jmsTopic1 =(JMSTopicMBean)home.findOrCreateAdminMBean("tempTopic1",
    "JMSTopic", "examples", jmsServer);
    jmsTopic1.setJNDIName("com.temp.topic1");
    jmsServer.addDestination(jmsTopic1);
    and the second one is added as:
    JMSDestinationMBean jmsTopic2 =(JMSTopicMBean)home.findOrCreateAdminMBean("tempTopic2",
    "JMSTopic", "examples", jmsServer);
    jmsTopic2.setJNDIName("com.temp.topic2");
    jmsServer.addDestination(jmsTopic2);
    (Actually, the Topics are added to the jmsServer in a method)
    I can see in the console that the first topic is added to the JMS serverand to the
    JNDItree of the server instance,
    But for some reason, the second topic is not added to the JNDI tree(butit
    is added
    to the JMS Server).
    and I can not look up the second object in JNDI.
    Does anybody come across this problem??
    what is the right way to add the destinations??
    thanks for any help
    -Vijay

  • Setting Additional JMS Parameters ...

    Hi experts,
    We are using PI 7.1 and I've set up a communication Channel using JMS Adapter to send
    messages to a Sonic MQ queue.
    I need to send some values as JMS parameters, two of which are constants and two are values
    from the Sender message. I tried defining and setting up the parameters with constants values
    in the Communication Channel under the Advanced tab by selecting the check-box
    set Adapter-specific Message Attributes as follows:
    Name          TYPE
    ContentType          String
    ReturnValue          boolean
    Name          VAlue
    Contenttype          CompanyCode
    ReturnValute          true
    This however lead to an error in the Adapter Engine (RWB).
    My problem is:
    1. Can anyone please instruct me as to how to go about defining and setting up
       additional JMS parameters?
    2. How to go about defining/setting up variables that will get their values from
       the sender message?
    Thanks & Cheers,
    Joe

    Hi,
    I am trying to send a file over FTPS (FTP using SSL/TLS) .
    But  it fails with the following error in RWB - Communication Channel monitoring:
    Error when getting an FTP connection from connection pool: com.sap.aii.af.lib.util.concurrent.ResourcePoolException:
    Unable to create new pooled resource: FTPEx: 'AUTH TLS': command not understood
    I running NW711_05 and my FTP Connection Parameters are as follows:
    Server:                                                                   OurServerName
    Port:                                                                          21
    Data Connection:                                                      Passive {even tried Active but got the same error}
    Timeout:                                                                    20
    Connection Security:                                                FTPS (FTP Using SSL/TLS) for control connection
    X Use X.509 Certificate for Client Authentication
    Keystore:                                                                 service_ssl
    X.509 Certificate and Private Key:                           ssl-credentials
    Do I need to do any specific configuration/settings on the receiving FTP-server side?
    kind regards,
    Joe

  • JMS Adapter - Set Additional JMS Parameters or Replace Default Settings

    Hi colleagues,
    We are using PI/XI 7.0 (SP 12).
    In trying to set up a Communication Channel using JMS Adapter to connect to Oracle AQ, I do not see the checkbox "Set Additional JMS Parameters or Replace Default Settings" , nor is the table for the parameters / value visible.
    We have deployed the driver file as described in the How-to- guide: How To Install and Configure External Drivers for JDBC & JMS Adapters
    [http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f04ce027-934d-2a10-5a8f-fa0b1ed4d88f?quicklink=index&overridelayout=true]
    In setting up the Communication Channel so far:
    Type: Sender
    Transport Protocol: Access JMS Provider Generically
    Message Protocol:  JMS 1.x
    Adapter Engine:      Integration Server
    After this I expect to see the checkbox  "Set Additional JMS Parameters or Replace Default Settings", but it is not there.
    Therefore I am not able to select it in order to enter parameters like:
    JMS.QueueConnectionFactoryImpl.classname
    JMS.QueueConnectionFactoryImpl.method.setHostName
    JMS.QueueImpl.classname
    JMS.QueueImpl.constructor.... etc
    Can someone please share if this because we are on too low SP or do we need to do something additional before it becomes visible?  Is this a feature that only became available as of PI/XI 7.0 SP 13 or 14 ?
    I checked both Sender and Receiver channel type, and it does not appear for both.
    Thanks & Cheers,
    Jodie

    Hi experts,
    We are using PI 7.1 and I've set up a communication Channel using JMS Adapter to send
    messages to a Sonic MQ queue.
    I need to send some values as JMS parameters, two of which are constants and two are values
    from the Sender message. I tried defining and setting up the parameters with constants values
    in the Communication Channel under the Advanced tab by selecting the check-box
    set Adapter-specific Message Attributes as follows:
    Name     TYPE
    ContentType     String
    ReturnValue     boolean
    Name     VAlue
    Contenttype     CompanyCode
    ReturnValute     true
    This however lead to an error in the Adapter Engine (RWB).
    My problem is:
    1. Can anyone please instruct me as to how to go about defining and setting up
       additional JMS parameters?
    2. How to go about defining/setting up variables that will get their values from
       the sender message?
    Thanks & Cheers,
    Joe

  • 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

  • Browse jms destinations on managed servers (from admin server)

    I need to browse JMS destinations from the admin server (in a WebLogic
    9.2 console extension) that are only deployed on the managed servers.
    I can get destination attributes via the domain runtime server, but
    no JNDI or actually browse the destinations. All destinations in
    which I am interested are queues.
    I know I can change my initial context, but if that is the way to go, is there a way to determine the managed
    servers' URLs at runtime?
    Thank you for any help,
    Seth

    hi
    this worked for me (on 8.1). I suppose there are
    better ways in 9.2
    Context adminCtx = null;
    adminCtx = getInitialContextForAdminServer();
    MBeanHome adminhome = (MBeanHome)
    adminCtx.lookup(MBeanHome.ADMIN_JNDI_NAME);
    // Get the list of running managed
    ning managed servers and iterate over itSet
    Set srSet =
    Set srSet =
    adminhome.getMBeansByType("ServerRuntime");
    Iterator sr_iter = srSet.iterator();
    while (sr_iter.hasNext())
    ServerRuntimeMBean bean =
    timeMBean bean = (ServerRuntimeMBean) sr_iter.next();
    // Get the home for the managed
    for the managed server
    MBeanHome remoteHome = (MBeanHome)
    me = (MBeanHome) adminCtx.lookup(MBeanHome.JNDI_NAME
    + "." + bean.getName());
    // Get the MBeanServer for the
    anServer for the managed server
    MBeanServer rmbs =
    eanServer rmbs = remoteHome.getMBeanServer();
    //invoke it
    ObjectName objectName= new
    objectName= new ObjectName("$mbean");
    rmbs.invoke(objectName,operation,params,types);
    Edited by deepshet at 05/05/2007 10:00 AMThank you for the help.
    MBeanHome is deprecated as of 9.0, so I was unable to directly use your example. You have helped though, thank you.
    As of now I am querying the domain runtime server for:
    ObjectName("com.bea:*,Type=ServerRuntime")
    I am then iterating through the returned Set to get the server URLs and then setting my InitialContext with a PROVIDER_URL of the managed servers. This allows me to Look Up a Destination without JNDI based on step 4 from [url http://edocs.bea.com/wls/docs92/jms/implement.html#wp1313933]here. I can then browse as needed.
    The ugly part is that if I include the Admin URL in my PROVIDER_URL then it does not work, so I am checking for it as I loop through the set of ServerRuntimes and not including it.
    Further though slightly less annoying is that the managed server URLs include "t3://" but if I leave it in there, a malformed URL exception is thrown when setting the PROVIDER_URL. So I also remove all of those and then preppend one on the front for PROVIDER_URL as I actually need.
    It is not pretty, but it is working on the only cluster I have been able to try thus far.
    If anyone was a cleaner suggestion, please share.

  • Looking up JMS destinations with clustered WLS

              From scanning the postings, it appears that in a clustered WLS environment, the
              JMS servers are not clustered. As a result, the JMS destinations must be unique
              across all of the WLS in the cluster. In addition, there is no failover available
              when a JMS server goes down.
              With that stated, what I want to know is:
              When establishing a JMS connection with a JMS server in a WLS cluster, do I need
              to know the JNDI URL for each specific JMS server that is managing the destination(s)
              I wish to pub/sub?
              Or, is there a 'global' JNDI tree that I can reference and the clustered WLS behind
              the scenes will route me to the appropriate JMS server?
              If resolving the URL is a manual process, I will need to keep track of which destinations
              reside on which JMS servers. This adds an additional maintenance point that I
              would like to avoid if possible.
              Thanks,
              Bob.
              

    One can use Connection Factory to establish connection to particular
              destination (queue/topic). connection factories are clustered. so, one don't
              need to have knowledge of particular WLS.
              "Neal Yin" <[email protected]> wrote in message
              news:[email protected]...
              > Although there is only one JMS server instance, you can lookup it from
              > anywhere in a cluster.
              > In another words, JNDI tree is global in a WLS cluster. Just give cluster
              > DNS name in your
              > URL, you will be fine.
              >
              > -Neal
              >
              >
              > "Bob Peroutka" <[email protected]> wrote in message
              > news:[email protected]...
              > >
              > > From scanning the postings, it appears that in a clustered WLS
              > environment, the
              > > JMS servers are not clustered. As a result, the JMS destinations must
              be
              > unique
              > > across all of the WLS in the cluster. In addition, there is no failover
              > available
              > > when a JMS server goes down.
              > >
              > > With that stated, what I want to know is:
              > >
              > > When establishing a JMS connection with a JMS server in a WLS cluster,
              do
              > I need
              > > to know the JNDI URL for each specific JMS server that is managing the
              > destination(s)
              > > I wish to pub/sub?
              > >
              > > Or, is there a 'global' JNDI tree that I can reference and the clustered
              > WLS behind
              > > the scenes will route me to the appropriate JMS server?
              > >
              > > If resolving the URL is a manual process, I will need to keep track of
              > which destinations
              > > reside on which JMS servers. This adds an additional maintenance point
              > that I
              > > would like to avoid if possible.
              > >
              > > Thanks,
              > >
              > > Bob.
              > >
              > >
              > >
              >
              >
              

  • Should I use the .do or .uix file as the destination attribute on a link?

    Good Morning all,
    What is the difference in using the .do action file or the .uix file as the destination attribute on a link? Is one preferred over the other? Any clairification would be helpful.
    Thank you

    I've spent considerable time on this myself but from the perspective of a GO vs. a link. Why the difference and what do we gain?
    You really need to understand Struts. I am just beginning to. The stuff that comes with 10g on Struts is the tip of the iceberg. I picked up an O'Reilly book (Jakarta Struts) which actually addresses why one should use an action reference vs a direct link to a page (UIX JSP or otherwise). There are many other useful discussions on the MVC and Struts' place in it.
    Briefly, a link to a UIX page bypasses the controller aspect of Struts and you forfeit the opportunity for extensions/customizations etc and basically violate the MVC blueprint (See sun.com).
    My issue was why do I have to do a DataAction and a forward (as all the Oracle collateral would have you do)when I just need to go directly to a page?
    Struts has a class (org.apache.struts.actions.forwardAction) that allows you to do just that without violating the MVC rules and without having to create all the extra actions and forwards when you just want to go to a page without a DataAction.
    Get the book, well worth the $ vs the frustration.
    Hope this helps somewhat.
    Tom

  • JMS Destination object not found

    Hi everyone,
    I have a weird problem with SunONE Message Queue 3.
    I have a queue and a connection factory defined (using the SunONE Application Server 7 Admin Console) as well as a physical resource.
    I can verify their existance using asadmin....
    asadmin>list-jmsdest -u admin server1
    queue_1 queue {}
    asadmin>list-jms-resources -u admin server1
    jms/newqueue_1
    jms/newQCF_1
    When I attempt to deploy a message driven EJB I get the following error
    SEVERE ( 1484): javax.naming.InvalidNameException: JMS Destination object not found:`jms/newqueue_1`
    This question has already been asked on the App Server board here http://swforum.sun.com/jive/thread.jspa?threadID=15517&tstart=0 (that post is nine months old btw).
    I am posting this here in the hope that someone more familiar with MQ3 may have an idea of how to help us.
    Thanks in advance.

    I have now solved this problem. External JNDI resources are required in the AppServer.
    They can be created with the following commands:
    asadmin>create-jndi-resource jndilookupname jms/newQCF_1 resourcetype javax.jms.QueueConnectionFactory factoryclass com.sun.jndi.fscontext.RefFSContextFactory enabled=true --property java.naming.provider.url=file\:///c\:/java/mqjndi:java.naming.security.authentication=none newQCF_1
    asadmin>create-jndi-resource jndilookupname jms/queue_1 resourcetype javax.jms.Queue factoryclass com.sun.jndi.fscontext.RefFSContextFactory enabled=true --property java.naming.provider.url=file\:///c\:/java/mqjndi newqueue_1
    Both these commands assume that the file system context is being used however the LDAP commands are similar (just more properties).
    This step, which seems vital, is missing from the AppServer documentation (in fact it specifically states that this step is not necessary). The irony is that I found the answer in the IBM MQ documentation!

  • Producing message to temporary JMS destination

    Hi,
    Has anyone managed to produce a message to a temporary JMS destination using the JMS Adapter? I'm trying to get this request/reply-pattern working:
    -Java client connects to a Connection Factory and creates a temporary reply queue (works, CF returns a destination like "TestingJmsServer!TestingJmsServer.TemporaryQueue2")
    -The client produces a message with JMSReplyTo pointing to the temporary reply queue (works)
    -JMS Adapter consumes the message and assigns jca.jms.JMSDestinationName := jca.jms.JMSReplyTo (works)
    -The JMS adapter should now produce the reply message to the provided temporary queue, but it always fails with error BEA-045101:
    The destination name passed to createTopic or createQueue "destName" is invalid. If the destination name does not contain a "/" character then it must be the name of a distributed destination that is available in the cluster to which the client is attached. If it does contain a "/" character then the string before the "/" must be the name of a JMSServer or a ".". The string after the "/" is the name of a the desired destination. If the "./" version of the string is used then any destination with the given name on the local WLS server will be returned.
    The same problem occurs with fixed queues, like "TestingJmsModule!ReplyQueue", but I can make them work by adding a "./" in front of the destination name when performing the jca.jms.JMSDestinationName assign, so that it reads "./TestingJmsModule!ReplyQueue". After that the adapter is able to produce the message correctly to the given JMSDestinationName.
    Is it significant that with fixed queues I get a destination like "JmsModule!FixedQueueName" (note the module) but with temporary destinations it is like "JmsServer!TempQueueName" (note the server)?
    Should the destination name be of some other format? The current value is exactly what the Connection Factory returns, and if the JMS adapter is replaced with another java client, producing the reply message to that destination works just fine.
    regards,
    Ville

    Hi,
    I am trying to send messages to the WLS queue through Camel and facing the same issue, which can be eliminated by using queue name as ./<QUEUE_NAME>.
    However it only eliminates the error and the next one comes is real pain. It is not able to find the JNDI name of the queue, where as I am able to see it in Admin console JNDI tree.
    Exception in thread "Main Thread" org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: Test Message: 0]
         at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1161)
         at org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:512)
         at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:441)
         at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:437)
         at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:125)
         at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:130)
         at org.apache.camel.example.jmstofile.PublishMessage.main(PublishMessage.java:63)
    Caused by: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is weblogic.jms.common.JMSException: [JMSExceptions:045102]A destination of name "WLtestQueue" was not found on WLS server "AdminServer".
         at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316)
         at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168)
         at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469)
         at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:172)
         at org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:347)
         at org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:303)
         at org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:101)
         at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
         at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
         at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85)
         at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63)
         at org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:345)
         at org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:317)
         at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:222)
         at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:317)
         at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:168)
         at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:110)
         at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:123)
         ... 2 more
    Caused by: weblogic.jms.common.JMSException: [JMSExceptions:045102]A destination of name "WLtestQueue" was not found on WLS server "AdminServer".
         at weblogic.jms.dispatcher.DispatcherAdapter.convertToJMSExceptionAndThrow(DispatcherAdapter.java:110)
         at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSyncNoTran(DispatcherAdapter.java:61)
         at weblogic.jms.client.JMSSession.createDestination(JMSSession.java:3192)
         at weblogic.jms.client.JMSSession.createQueue(JMSSession.java:2577)
         at weblogic.jms.client.WLSessionImpl.createQueue(WLSessionImpl.java:938)
         at org.springframework.jms.support.destination.DynamicDestinationResolver.resolveQueue(DynamicDestinationResolver.java:101)
         at org.springframework.jms.support.destination.DynamicDestinationResolver.resolveDestinationName(DynamicDestinationResolver.java:66)
         at org.springframework.jms.support.destination.JmsDestinationAccessor.resolveDestinationName(JmsDestinationAccessor.java:100)
         at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$200(JmsConfiguration.java:141)
         at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:174)
         at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:466)
         ... 17 more
    Anyone has got any idea?

  • JMS Destinations in a cluster

    I'm having a problem getting managed nodes in a cluster to find JMS Queues
              and Topics.
              The Connection Factory is found, but the destinations are not.
              I have targeted the JMS Server to one node in the cluster.
              I have targeted the Connection Factories to the cluster.
              Is there something else that needs to be done to get the destinations
              available to the cluster?
              When I view the JNDI tree of the slave nodes, the destinations just are not
              there. I wait and wait and they don't show up.
              A.M.
              

    I have a question that relates to this discussion.
              When I deploy a topic on a cluster I am only allowed to deploy it on one
              JMSServer. Trying to deploy it on more than one gives me a JNDI error
              (duplicate name). This works fine, however, and messages are delivered to
              all members of the cluster. But if I kill off the server where the
              destination topic exists, that topic disappears from the cluster and further
              messages cannot be delivered. Weblogic tells me that the topic does not
              exist. My question is - how do I get the topic to survive the failure of
              the server on which it is deployed? Why doesn't replication keep the topic
              alive?
              "Tom Barnes" <[email protected]> wrote in message
              news:[email protected]...
              > Note that the admin server does not participate in the cluster so
              > it doesn't participate in JNDI replication. If JMS destinations
              > exist on the admin server one must use a JNDI context
              > that is pinned to the admin server to find them... Same deal
              > with connection factories that can talk to the admin server.
              >
              > Zach wrote:
              >
              > > Could you please post your config.xml file (the one that doesn't
              > > work where the JMS server is deployed to the admin server).
              > > _sjz.
              > >
              > > "Asynch Messaging" <[email protected]> wrote in message
              > > news:[email protected]...
              > > > I found that we were attempting to deploy the JMS Server to the
              'admin'
              > > > server, rather than a managed server.
              > > > This apparently is not allowed.
              > > >
              > > > A.M.
              > > >
              > > > "Asynch Messaging" <[email protected]> wrote in message
              > > > news:[email protected]...
              > > > > I'm having a problem getting managed nodes in a cluster to find JMS
              > > Queues
              > > > > and Topics.
              > > > > The Connection Factory is found, but the destinations are not.
              > > > >
              > > > > I have targeted the JMS Server to one node in the cluster.
              > > > > I have targeted the Connection Factories to the cluster.
              > > > >
              > > > > Is there something else that needs to be done to get the
              destinations
              > > > > available to the cluster?
              > > > > When I view the JNDI tree of the slave nodes, the destinations just
              are
              > > > not
              > > > > there. I wait and wait and they don't show up.
              > > > >
              > > > > A.M.
              > > > >
              > > > >
              > > > >
              > > >
              > > >
              >
              

  • [svn] 2692: Bug: BLZ-227 - When using JMS Destination, MessageClient and FlexClient not released from memory when the session times out .

    Revision: 2692
    Author: [email protected]
    Date: 2008-07-31 13:05:35 -0700 (Thu, 31 Jul 2008)
    Log Message:
    Bug: BLZ-227 - When using JMS Destination, MessageClient and FlexClient not released from memory when the session times out.
    QA: Yes
    Doc: No
    Checkintests: Pass
    Details: Fixed a memory leak with JMS adapter. Also a minor tweak to QA build file to not to start the server if the server is already running.
    Ticket Links:
    http://bugs.adobe.com/jira/browse/BLZ-227
    Modified Paths:
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/services/messaging/adapters/J MSAdapter.java
    blazeds/branches/3.0.x/qa/build.xml

    Revision: 2692
    Author: [email protected]
    Date: 2008-07-31 13:05:35 -0700 (Thu, 31 Jul 2008)
    Log Message:
    Bug: BLZ-227 - When using JMS Destination, MessageClient and FlexClient not released from memory when the session times out.
    QA: Yes
    Doc: No
    Checkintests: Pass
    Details: Fixed a memory leak with JMS adapter. Also a minor tweak to QA build file to not to start the server if the server is already running.
    Ticket Links:
    http://bugs.adobe.com/jira/browse/BLZ-227
    Modified Paths:
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/services/messaging/adapters/J MSAdapter.java
    blazeds/branches/3.0.x/qa/build.xml

  • Jdev11G XMLMenuModel : Setting the "destination" attribute for the itemNode

    Hi,
    I am trying to set the "destination" attribute for the itemNode in the metadata.xml.This is the URI to which the user must be taken on clicking that node. But it is unable to pick the URI set for the destination attribute and hence there is no navigation that happens.Using the "action" attribute works fine. But I need to use the "destination" attribute.
    Here are some of the files:
    The metadata.xml (root_menu.xml):
    <?xml version="1.0" encoding="windows-1252" ?>
    <menu xmlns="http://myfaces.apache.org/trinidad/menu">
    <groupNode id="groupNode1" idref="itemNode1" label="Merchant">
    <itemNode id="itemNode1" label="Sites" action="site_action" rendered="#{testBean.test}"
    focusViewId="/common/site/Site.jspx">
    </itemNode>
    <groupNode id="groupNode2" idref="itemNode2" label="Settings">
    <itemNode id="itemNode2" label="Page Template" action="template_action"
    focusViewId="/common/template/TemplateRules.jspx">
    </itemNode>
    <itemNode id="itemNode3" label="Configuration Parameters" destination="http://www.google.com"
    action="config_action" focusViewId="/common/others/ConfigurationParameters.jspx">
    </itemNode>
    </groupNode>
    <groupNode id="groupNode3" idref="itemNode4" label="System Admin">
    <itemNode id="itemNode4" label="Cache Invalidation" destination="/faces/common/others/CacheInvalidation.jspx"
    focusViewId="/common/others/CacheInvalidation.jspx">
    </itemNode>
    </groupNode>
    </groupNode>
    </menu>
    The faces_config.xml:
    <?xml version="1.0" encoding="windows-1252"?>
    <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee">
    <application>
    <default-render-kit-id>oracle.adf.rich</default-render-kit-id>
    </application>
    <navigation-rule>
    <navigation-case>
    <from-outcome>site_action</from-outcome>
    <to-view-id>/common/site/Site.jspx</to-view-id>
    </navigation-case>
    <navigation-case>
    <from-outcome>template_action</from-outcome>
    <to-view-id>/common/template/TemplateRules.jspx</to-view-id>
    </navigation-case>
    <navigation-case>
    <from-outcome>config_action</from-outcome>
    <to-view-id>/common/others/ConfigurationParameters.jspx</to-view-id>
    </navigation-case>
    <navigation-case>
    <from-outcome>cache_action</from-outcome>
    <to-view-id>/common/others/CacheInvalidation.jspx</to-view-id>
    </navigation-case>
    </navigation-rule>
    <managed-bean>
    <managed-bean-name>root_menu</managed-bean-name>
    <managed-bean-class>org.apache.myfaces.trinidad.model.XMLMenuModel</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <managed-property>
    <property-name>createHiddenNodes</property-name>
    <value>false</value>
    </managed-property>
    <managed-property>
    <property-name>source</property-name>
    <property-class>java.lang.String</property-class>
    <value>/WEB-INF/root_menu.xml</value>
    </managed-property>
    </managed-bean>
    <managed-bean>
    <managed-bean-name>testBean</managed-bean-name>
    <managed-bean-class>testBean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    </faces-config>
    Can you please tell me what else has to be set for the "destination" attribute to work?
    Thanks,
    Swapna

    The code you sent is not clear, could you send your jspx page.
    Thanks

  • A JMS destination limit was reached.

    Hi,
    I encounter en error when I deploy an application under Application Server 9.
    I got the following error message :
    A JMS destination limit was reached. Too many Subscribers/Receivers for Queue : NewMessage user=guest, broker=localhost:7676(2832)What I need to configure / change / adapt my code ? I use the Click Framework to retrieve a Facade :
        /** Creates a new instance of Hello */
        public Hello() {
            tableToto = new Table();
            if (newsEntityFacade == null) newsEntityFacade = lookupNewEntityFacade();
            tableToto.setClass("simple");
            tableToto.setPageSize(40);
            tableToto.setName("tableToto");
            tableToto.addColumn(new Column("id"));
            tableToto.addColumn(new Column("title"));
            tableToto.addColumn(new Column("body"));
            index = 0;
            max = newsEntityFacade.count();
            rowByPage = tableToto.getPageSize();
            tableToto.setRowCount(max / rowByPage);
      private NewEntityFacadeLocal lookupNewEntityFacade() {
            try {
                Context c = new InitialContext();
                return (NewEntityFacadeLocal) c.lookup("java:comp/env/ejb/NewEntityFacade");
            catch(NamingException ne) {
                Logger.getLogger(getClass().getName()).log(Level.SEVERE,"exception caught" ,ne);
                throw new RuntimeException(ne);
        }And my Facade is declared as @Stateless

    I've checked that topic earlier before I have posted mine, but at that time it didn't strike me! Now, I realize the exact problem!
    I need to undeploy my message-driven bean tutorial example, which was using the same queue!
    Thanks.

Maybe you are looking for

  • MSI GTX980 Gaming sometimes not recognized by MSI Z97 Gaming 9 AC

    I have been experiencing a very odd problem with my new hardware. Hardware Motherboard: MSI Z97 Gaming 9 AC CPU: Intel Core i7-4790 CPU-cooler: Scythe Mugen 4 RAM: G.Skill RipjawsZ F3-17000CL9Q-16GBZH Videocard: MSI GeForce GTX 980 4GB GAMING 4G PSU:

  • Driver issue in Device manager

    I can not find the driver that goes with the PCI Serial Port in the device manager? How can I find this driver for an Elitebook 8460p?

  • Nokia 7373 - Security Code Forgotten

    Hi, I can't perform a master reset on my phone or delete contacts from the phone as I seem to have forgotten my security code (although I do still know my PIN so can access and use the phone). So far I have tried the following codes: 0000 1111 12345

  • Problem publishing database contents from non-unicode to unicode system

    Hello everyone! We just set up a new SAP WAS based on Netweaver 2004 as a unicode system. Out problem now is that we have a content management system on our non-unicode system and that we are publishing the contents via rfc to the WAS unicode system

  • Localization of labels in report

    Hi, I am trying to localize labels used in reports - for this i've created report in Crystal Reports 2008 designer. I am using JRC to edit the labels used in this report. Japanese character inserted appears as question marks in viewer. when i used th