JMS Topics and Selectors

I'm running into a problem when using JMS Topics and selectors.
If I just use:
subscriber = session.createSubscriber(topic);
everything works fine.
However, if I use
subscriber = session.createSubscriber(topic, "Property = 'Value'", false);
I get an invalid topic exception from EvermindTopicSession.createSubscriber() line 84.
I'm using OC4J 9.0.3 standalone.
What might I be doing wrong?

[bump]
Incidentally, I've also noticed that JMSTimestamp is not set. I've even tried setDisableTimestamp(false). The timestamp still won't be set. I can set the timestamp manually myself using setJMSTimestamp. Also, message time to live doesn't seem to work with Topics (not sure about queues).
Is this a well known problem?
Is it an OC4J problem or a JMS problem?

Similar Messages

  • Can JMS topics and queues be clustered in a WLS 7.0 Cluster?

    We are installing a weblogic 7.0 cluster with 1 admin server and 2 managed
              node servers. Two nodes have been clustered. We are at the point where we
              need to configure JMS. Has any one implemented JMS in WLS 7 clustered
              environment? What are the things to watch out when clustering JMS? Can JMS
              topics and queues be clustered?
              TIA for any helpful hints and comments.
              Regards
              

    "Karim Ali" <[email protected]> wrote:
              >> Has any one implemented JMS in WLS 7 clustered
              >> environment?
              I'm currently working on a project with WLS 7 here at work, involving
              the implementation of BEA's JMS Cluster. So far, I really haven't had
              many hiccups.
              "Karim Ali" <[email protected]> wrote:
              >> What are the things to watch out when clustering JMS?
              At least in WLS 7, the biggest thing that stands out is the lack of
              automatic failover. Also, Message Paging -- make sure you configure
              paging high/low thresholds. Or, if you don't wish for it to occur but
              can't stop the server (very common these days with SLAs), set that
              byte/message high threshold to a very large number (correct me if I'm
              wrong, but I believe BEA recommends 2^63 -1).
              "Karim Ali" <[email protected]> wrote:
              >> Can JMS topics and queues be clustered?
              Well, since Topics and Queues are extensions of the
              javax.jms.Destination interface, the answer is: Yes!
              (SIDE NOTE: most people usually refer to them as a [JMS] "destination"
              -- it avoids a lot of conceptual baggage and plus, less typing!)
              You'll probably want to see this section of BEA's e-docs:
              http://edocs.bea.com/wls/docs70/adminguide/jms.html#config_distributed_destinations
              later,
              Brian J. Mitchell
              BEA Systems Administrator
              TRX
              Atlanta, GA
              email: [email protected]
              office: 404-327-7238
              mobile: 678-283-6530
              

  • Newbie question about JMS topic and OSB

    So here is what I want to achieve:
    I want to "front" a JMS topic on WLS using OSB 10g. I want the users (producers and subscribers) to be access the topic via proxy services. The way I picture this is that a producer will invoke a proxy to publish a message. The subscriber will (asynchronously) invoke another proxy to pickup the message.
    Is this possible and how do I go about doing this?
    thanks
    Edited by: user10341230 on Apr 28, 2010 8:49 AM

    Hi there,
    user10341230 wrote:
    I want to "front" a JMS topic on WLS using OSB 10g. I want the users (producers and subscribers) to be access the topic via proxy services. > it's not really clear what you want to achieve here.
    you say
    user10341230 wrote:
    The way I picture this is that a producer will invoke a proxy to publish a message.you need a proxy with whatever inbound protocol you like (http, file, mail...), which through a jms business service push the message to the Topic.
    you say
    user10341230 wrote:
    The subscriber will (asynchronously) invoke another proxy to pickup the messagethe subscriber can be either asyncrhnous, in which case you need a proxy service with inbound protocol jms. or as you probably need a synchronous one
    in which case you need another proxy with whatever inbound protocol you like whch once called in its pipeline calls some pojo class to read from this topic synchrnously (you need a durable subsciber).
    Regards,
    Tony
    ps: have a look http://download-llnw.oracle.com/docs/cd/E11035_01/wls100/jms/design_best_practices.html#wp1058694

  • 1 "simple" JMS topic and 2 cluster elements with OSB

    Hi,
    I have 1 simple jms topic (not distributed, not on migratable target) and cluster with 2 members - OSB as main application. My OSB proxy service reads from this topic and saves data to file.
    The problem is that reading from topic appears twice - once by each cluster member. How to configure topic or proxy service for only one reading?

    FYI - At this year's Oracle OpenWorld, which is being held in conjunction with this year's JavaOne, Oracle will be announcing a set of enhancements that are designed to cover this exact use case.
    Tom Barnes
    Session ID: S317469
    Title: New Service-Oriented Architecture Patterns with Enterprise Grid Messaging
    Abstract: Messaging systems are essential in enabling the flexibility and loosely coupled nature of a service-oriented architecture (SOA). Oracle WebLogic Java Message Service (JMS) includes new pub-sub capabilities that make architectures more adaptable, allowing message producers to be ignorant of who is the consumer of a message or how many consumers there are. It also enables easy scale out and dynamic adaptability through clustering and message-driven bean (MDB) enhancements, all while still guaranteeing strict message ordering. This session will outline new JMS capabilities and show how they enable new designs with Oracle WebLogic Server and Oracle Service Bus.
    Speaker(s): Dongbo Xiao, Oracle, Principal Member of Technical Staff
    Biography not available.
    David Cabelus, Oracle USA, Senior Principal Product Manager
    Dave Cabelus is a Senior Principal Product Manager in the WebLogic Server group at Oracle. Dave's responsibilities include product strategy and direction for various pieces of WebLogic Server, including Java Messaging, Operations and Management, Diagnostics, and various other initiatives, and previously included database connectivity, transactions, and Web tier integration. In the industry since 1996 and involved in Java since 1999, Dave worked at various software companies including Logic Works, Platinum Software, Kana, and a few startups before coming to Oracle (BEA) in 2001.
    Event: JavaOne and Oracle Develop
    Stream(s): ORACLE DEVELOP, DEVELOP
    Track(s): Application Grid and Oracle WebLogic
    Tags: Add
    Session Type: Conference Session
    Session Category: Features
    Duration: 60 min.
    Schedule: Thursday, September 23, 11:00AM | Hotel Nikko, Nikko Ballroom II Available
    Edited by: TomB on Aug 12, 2010 1:21 PM

  • How to configure a error queue for weblogic jms topic

    Hi guys.
    I want to configure a error queue for weblogic jms topic. Wanted: The message goes to error destination when messages have expired or reached their redelivery limit.
    1. using jms transport configure proxy service:
    Retry Count :3
    Retry Interval:10
    Error Destination: ErrorTopic
    Expiration Policy: Redirect
    I tried use the proxy service to consume message from the jms topic . and generation an error in the proxy message flow. But the message didn't goes into the error topic.
    Any suggestions for this topic? Can anyone provide some helps or any useful links.
    Thanks in advance.
    Mingzhuang

    Mingzhuang
    I want to configure a error queue for weblogic jms topic. Wanted: The message goes to error destination when messages have expired or reached their redelivery limit.
    1. using jms transport configure proxy service:
    Retry Count :3
    Retry Interval:10
    Error Destination: ErrorTopic
    Expiration olicy: RedirectUnlike File/SFTP, JMS proxy service definition does not have the concept of Error Destination. To accomplish similar functionality go to JMSQ on (for which proxy is configured) server console (http://localhost:7001/console) and configure the Error Destination. Following URL will help in how to configure JMS Q.
    http://edocs.bea.com/wls/docs103/ConsoleHelp/taskhelp/jms_modules/queues/ConfigureQueues.html
    http://edocs.bea.com/wls/docs103/ConsoleHelp/taskhelp/jms_modules/queues/ConfigureQueueDeliveryFailure.html
    I tried use the proxy service to consume message from the jms topic . and generation an error in the proxy message flow. But the message didn't goes into the error topic.If every thing is configured as per above step, then the after retries, the weblogic server will put the message into JMS topic configured. Your proxy will receive from this topic.
    Let me know if we are not on same page.
    Cheers
    Manoj

  • Flex with JMS Topic/Queue for Asynchronous messaging

    I have been working on Flex and JMS integration using Data
    Services for Asynchronous messaging. I am able to do this
    successfuly. Now I am in need to do the same without using the Data
    Services piece.
    For doing this I have done the following ......
    I have created a JMS Webservice in the Oracle JDeveloper 10G
    along with Webservice Client.I am able to Listen to JMS Topic/Queue
    ( this has been created in the Oracle AS ) using this Webservice
    and receive the messages from this JMS Topic/Queue
    Asynchronously.....
    But If I need to use the Flex Client , I am not able to
    Communicate with this Webservice to listen to the JMS Topic/Queue.
    Did any one in this forum tried to communicate with JMS
    Topic/Queue without using Flex Data Service.If so please share your
    inputs.

    Here is my confusion (I'm using J2EESDK1.3).
    On a local server I did the following
    j2eeadmin -addJmsFactory jms/RemoteTCF topic -props url=corbaname:iiop:mars#mars
    In the app client running on the local server I had the code
    ic = new InitialContext();
    // JNDI lookup. The resource factory ref points to the
    // Remote Connection Factory I registered
    tcf = (TopicConnectionFactory)ic.lookup("java:comp/env/jms/TopicConnectionFactory");
    // The env ref points to jms/Topic of the local server
    pTopic = (Topic)ic.lookup("java:comp/env/jms/PTopic");
    So I'm assuming that I'm using a connection factory that connect to mars and a Topic on the local box.
    On remote server mars, I deployed a MDB which use
    jms/TopicConnectionFactory and jms/Topic. But I'm thinking this jms/Topic and the one I used on the local box are not the same one. Right? Then how could the app client and the MDB share messages?
    Some of my explanation I don't if it makes sense or not.
    ConnectionFactory is a way to tell what kind of connection it could generate (Queue, Topic, Durable etc) and Where the connection would go to (local or remote).'
    As for as destination, I'm not sure. How could two server share one Topic?

  • Support for JMS Topic in SAP PI 7.11

    Hi,
    As per SAP Note 856346, JMS Topics are not supported in SAP PI (Question 2.1). However the Note is valid for SAP PI 7.1 and there is no mention for SAP PI 7.11
    So can anybody please confirm if SAP PI7.11 supports JMS Topics?
    Thanks,
    Pankaj.

    Hi,
    There seems to be a lot of confusion between what is documented and what is available in actual. I did a search in help.sap.com for JMS Topic and got some information under PI7.11
    http://help.sap.com/saphelp_nwpi711/helpdata/en/46/31558a9f1214dfe10000000a155369/frameset.htm
    I hope that someone from SAP confirms the actual working. I dont want to raise an OSS for this
    Thanks,
    Pankaj.

  • Garbage added to log while sending message to Weblogic JMS topic

    Hi All,
    Was able to sucessfully send messages to Weblogic JMS topic and also able recieve them.
    But while sending the messages to topic loy of debug statements are printed to the standard output
    This is seen only in production and not in developement, and expecting it due config issue...
    Any ideas on this is greatly appriciatied.
    Thanks in advance !
    Cheers,
    Ambha

    Thanks for the replies,
    The problem is certainly not with logger settings...
    The statements which are getting printed are SSL debugging
    The following settings are used by the application which sends messages to the topic :
    Dssl.debug=true
    Dweblogic.StdoutDebugEnabled=true
    These settings are same in Dev, UAT, and Production. But why the debug statements are seen only
    in UAT and Production I am not sure...
    *<Some TIME IST> <Debug> <TLS> <000000> <......>*
    *<Some TIME IST> <Debug> <TLS> <000000> <......>*
    *<Some TIME IST> <Debug> <TLS> <000000> <......>*
    *<Some TIME IST> <Debug> <TLS> <000000> <......>*
    *<Some TIME IST> <Debug> <TLS> <000000> <......>*
    *<Some TIME IST> <Debug> <TLS> <000000> <......>*
    *<Some TIME IST> <Debug> <TLS> <000000> <......>*
    any Ideas... ?
    Thanks
    Ambha

  • Receive asynchronous message from JMS  topic over web service

    Hi,
    I have a JMS topic and I want to expose it as a web service so that clients can
    make durable subcription to the topic and receive messages asynchronously. What
    is the best way of doing this ? Is there a portable (to other containers) way
    of do this ? If not, is there a web logic specific way of doing this ?
    Thanks,
    Siva

    So you expect clients to be receiving SOAP messages over HTTP? In this
    case, the clients are really servers that are capable of servicing SOAP
    requests, correct? And how about the senders: are they also using
    SOAP/HTTP to send messages that are delivered to the receivers?
    It should be possible to write this yourself using JMS not as the
    transport, but as a mechanism for distributing the message to a set of
    clients. You'll need to implement a Web Service for publishing to a
    topic, an operation for registering an end point to recieve messages,
    and an MDB (or other form of JMS subscriber) executing on the server to
    relay the message to the end point.
    Siva wrote:
    Hi,
    I have a JMS topic and I want to expose it as a web service so that clients can
    make durable subcription to the topic and receive messages asynchronously. What
    is the best way of doing this ? Is there a portable (to other containers) way
    of do this ? If not, is there a web logic specific way of doing this ?
    Thanks,
    Siva

  • Want to configure jms adapter to listen two jms topics

    Hi,
    i want to implement an scenario where the single subscriber has to listen two topics. i have created two jms topics and pushing message into that now i want to consume the messages in two topics using single subscriber. is this is possible using JMS Adapter. any suggestions??? Kindly help...
    Thanks in advance...

    This is not possible.
    You can associate one subscriber to one topic only.You can have multiple subscribers listening on same topic but not the reverse.

  • Creating topics and queues programatically

    Hi,
    Here i my scenario.
    1. I have created the required number of queues and topics using the SunOne MQ's imqcmd command.
    2. I want to use the jndi apis to register the jndia names for these queues in the appserver. How do we do this?
    3. How to make an entry in the server.xml file programatically?
    Note:- i do no t want to use the asadmin-utility for this.
    i want to use the standard api's available to do this task.
    Pls help
    regards
    raghu

    Hi Raghu,
    You appear to have created various topics and queues
    on a MQ broker via the imqcmd command (independent
    of app server).
    For JMS clients to access/use the above topics/queues,
    JMS resources of type javax.jms.Topic and javax.jms.Queue
    need to be created and exposed to app server's JNDI
    context.
    Running this command:
    asadmin create-jms-resource ...
    Creates a new jms-resource entry in server.xml and
    the command:
    asadmin reconfig ...
    Creates the actual java object and introduces it into
    app server's JNDI context. (A server restart does this too).
    You mention that you want to do the above from your code.
    I don't think it is possible to programatically add new
    resources into server.xml. If there was a way, I wouldn't
    recommend it be done from J2EE applications since JMS resource
    management is an administrative task. Note that using
    JNDI to bind an object from an application (I haven't tried it
    in app server) may appear to work but this resource is not
    persisted across restarts since it is not in server.xml.
    Why do you want to do this ? Why does your application need to do
    what asadmin already does today ?
    Perhaps if I can better understand why you want to do this I can
    help suggest other solutions.
    regards,
    -isa

  • Need JMS topics tutorial

    Hi
    I need to create a WebLogic JMS topic and read messages from it. Need a step-by-step tutorial, searched the web, no help. If any one knows a good tutorial on this, pl let me know. Even a tutorial on JMS Queues would help.
    thanks
    a s

    Here are the steps for you. If you need anymore help let me know.
    Configure a JMS server.
    2.1 AdminServer and dizzy1 are running.
    2.2 Navigate to dizzyworld Services Messaging JMS Servers. Lock the
    console.
    2.3 Click New under the JMS Servers table and specify the following properties:
    Name: dizzyworldJMSServer
    Persistent Store: (none)
    2.4 Click Next and target the JMS server to dizzy1 Managed Server. Click Finish.
    2.5 Activate your changes.
    Configure a JMS module and add a queue and a topic to the JMS module.
    3.1 Navigate to dizzyworld Services Messaging JMS Modules. Lock the
    console, if necessary.
    3.2 Click New under the JMS Modules table and specify the following properties:
    Name: dizzyworldModule
    Descriptor File Name: dizzyworldModule
    3.3 Click Next and target the module to the dizzy1 Managed Server. Click Next and
    select the following:
    Would you like to add resources to this JMS system module?
    3.4 Click Finish.
    3.5 In the Settings for dizzyworldModule page, click the Subdeployments tab. Under the
    Subdeployments table, click New to create a subdeployment with the following
    specifications:
    Subdeployment Name: dizzy1SubDeployment
    Click Next.
    3.6 In the Targets page, select the dizzyworldJMSServer as the target under the
    JMS Servers table. Click Finish.
    3.7 Click the Configuration tab.
    3.8 In the Settings for dizzyworldModule page under the Summary of Resources table,
    click New to configure a new JMS queue for the JMS module.
    3.9 In the Create a New JMS System Module Resource page under the heading of
    Choose the type of resource you want to create, select Queue.
    3.10 Click Next.
    3.11 In the JMS Destination Properties, specify the following parameters:
    Name: dizzyworldQueue
    JNDI Name: dizzyworldQueue
    Template: None
    3.12 Click Next.
    3.13 Click Advanced Targeting. Select dizzy1SubDeployment from the
    subdeployments list. Click Finish.
    3.14 In the Settings for dizzyworldModule page under the Summary of Resources table,
    click New to configure a new JMS topic for the JMS module.
    Contents Page 70 of 143
    mhtml:file://C:\Documents and Settings\RTiwari\Desktop\Weblogic_9.2_LAB.mht 11/3/2008
    3.15 In the Create a New JMS System Module Resource page under the heading of
    Choose the type of resource you want to create, select Topic.
    3.16 Click Next.
    3.17 In the JMS Destination Properties, specify the following parameters:
    Name: dizzyworldTopic
    JNDI Name: dizzyworldTopic
    Template: None
    3.18 Click Next.
    3.19 Click Advanced Targeting. Select dizzy1SubDeployment from the
    subdeployments list. Click Finish.
    3.20 Activate the changes.
    You should be able to see JNDI entries on the dizzy1 managed server called
    dizzyworldQueue and dizzyworldTopic.
    Thanks
    Togotutor
    <b><a class="jive-link-external" href="http://www.togotutor.com">http://www.togotutor.com</a> (Learn Programming and Administration for Free)</b>

  • How to subscribe to a JMS topic with a selector

    I'd like to receive messages on a JMS topic satifying a selector.
    I'm trying examples\webservices\message. The ConsumerClient
    receives messages on "examples.soap.msgService.MsgSend". But if
    I want to sepcify a selector, how do I do it? Thanks!
    Kevin

    I think Mediator by default participates in a same transaction and if the webservice calls fails, it would rollback the message to queue.
    I would suggest you to setup fault policy in mediator for the webservice invoke and catch the fault and do the retries or human intervention depends on your need.
    Also, my personal suggestion is to use BPEL in place of ESB in this scenario as you have more persistence and fault handling capabilities in BPEL over ESB.

  • JMS Header: JMS Properties and Message Selector

    Hi all
    I´m using a JMS Adapter to consume messages from a JMS queue (a JMS adapter which create the BPEL instance when a message arrives).
    The process must select messages which meet certain criterias, so I´m using Message Selector to filter the messages and only pick up the ones who interest me (If click on the "help" button on JDeveloper Wizard in the page you define Message Selector, you can see an example on how doing this).
    So how can I select messages using values placed on JMS Properties, in the Message Selector?
    For example, I set in the JMS Header:
    JMSInboundHeadersAndProperties
    --------JMSInboundProperties
    ----------------Property
    -----------------------name = 'Country'
    -----------------------value = 'Brazil'
    The JMSAdapter must consume only messages that "Country" = "Brazil".
    Thanks in advance.
    Menezes

    Yes
    I am able to specify JMS Header and JMS Properties when producing a message. However I am not able to user "Message Selector" to filter messages based on JMS Properties information when consuming messages.
    In the link you provide, there is an example on how to use Message Selector:
    # (a copy from the link)
    Message Selector
    ...for example, you can enter logic, such as:
    * JMSType = 'car' AND color = 'blue' AND weight > 2500
    * Country in ('UK', 'US', 'France')
    I believe the example with "Country" is exactly what I need, but I can´t get it work.
    I create the same example above, setting a property named "Country" in the JMSHeader, sending the message to a JMS Queue (BPEL Process #1) and try to comsume it on the Message Selector (BPEL Process#2), but JMSAdapter never consumes the message.
    Thanks for your help.

  • JMS distrubuted topic and jms inbound adapter

    Hi,
    We are building a HA application using precise recovery using JMS. FOr that we want to create a distributed JMS Topic (ckustered JMS Topic). As we understand things, when a JMS subscriber subscribes to a distributed Topic it is actually wired to a sopecific server (a specific fisical JMS Topic). When this JMS server fails the connection is dropped and the JMS subscriber needs to reconnect.
    1. Is our understanging correct?
    2. If yes and we need to reconnect to the surviving JMS Topic, is there a way to "tell" the JMS Inbound adapter to do so? Is it done automatically by the adapter?
    Thanks,

    There are a few different things you should be considering when configuring JMS for precise recovery, so I'm afraid this is going to be a long response.
    * The precise recovery feature may not work correctly in the case where JMS output messages are lost. Avoiding message loss in the case of a JMS failure involving topics requires the use of persistent messages and durable subscribers. This is true regardless of whether you're using Distributed Topics or a Topic hosted by a single server. So use of durable subscribers is highly recommended when using CEP precise recovery.
    * The CEP JMS input adapter won't actually support durable subscriptions until the upcoming 11.1.1.6 (PS5) release. So if you want to use durable subscriptions to avoid problems with precise recovery in the case of JMS server failure you would need to be on this release of CEP (at least for production).
    * If you're using the CEP JMS inbound adapter with a distributed topic and a non-durable subscription, you can configure the adapter destination-jndi-name with the logical name of the topic and if the topic member servicing a given consumer fails, the consumer will reconnect to a surviving topic member. This works because you're using a logical destination name (not a physical host name or IP address), so the adapter is able to determine the surviving servers associated with the logical topic and reconnect to one of them. However since you'd be using non-durable subscriptions in this case to achieve failover/reconnect, you can have the problem described above with message loss and precise recovery (non-durable subscribers/non-persistent messaging can lose messages during the actual failover/reconnect).
    * Unfortunately, WLS doesn't support durable subscriptions to distributed topics using the logical destination name. When using distributed topics you can only create durable subscriptions on specific topic members, and since these are subscriptions to a specific physical member these subscribers won't failover to another topic member if the server hosting their subscription fails.
    So given all of the above you can see that the use of distributed topics with CEP precise recovery may not provide the ideal level of HA (the ability to handle combinations of JMS and CEP failures). You might want to consider using a non-distributed (single server) topic with persistent messaging and durable subscriptions as an alternate approach for precise recovery. In this configuration JMS server failure would require restarting the failed server, but once the JMS server is restarted there should be no message loss and CEP precise recovery should work correctly.
    If you're determined to use distributed topics you might want to try posting to the JMS forum to see if anyone there has ideas for other solutions. Just let them know that CEP in this case is essentially acting as a vanilla JMS client (not MDB based) that can't tolerate message loss:
    WebLogic Server - JMS

Maybe you are looking for

  • Songs show up on ipod but will not play

    i have downloaded over 400 songs from the itunes store, these songs all show up on the ipod. when i select a song to be played it will not play. it just skips to the next song in order, and the next, and the next, etc etc etc...however all the songs

  • Can not startup the oracle db after reboot

    Hi. I have an Oracle 10g DB running on Linux9 server. It works well before I reboot the server this morning. I can not startup the db. $ sqlplus /NOLOG SQL> CONNECT sys/password AS SYSDBA Connected to an idle instance. SQL> STARTUP ORA-17503: ksfdopn

  • The delete icon at the bottom of the email page has disappeared

    The delete icon at the bottom of the email page has disappeared.  How can I find it?

  • Editing using Photoshop CS4 on PC

    Hi I want to edit photos in my MacBook Aperture library using Photoshop on my PC. Is this possible ? Thanks

  • Hotmail links not working

    With upgrade from Firefox 10.0.1 to 10.0.2 all hotmail links will not open. The hotmail webpage seems to load correctly and shows all emails in the inbox but then no links on the webpage work. Therefore cannot open any emails. Therefore have to open