Error destination for durable subscribers
We want to use the publish/subscribe mechanism for application
integration purposes. We have one application publishing a message on
a topic and multiple application that have a durable subscription on
that topic.
We want to control the redelivery process for an individual
subscriber. When the number of retries is exceeded for a particular
message it is sent to the error destination for that application. This
allows us to fix the problem in the application (whatever it was) and
resubmit the message to the application.
We can set the Error Destination and control the redelivery process
for both Topics and Queue. But is it also possible to define an error
destination and redelivery process for individual durable
subscriptions?
Cheers,
Mark van Holsteijn
PS: My reference material is MQ en TUXEDO/Q. In both MQ and TUXEDO/Q
you subscribe a specific Queue to a topic giving you both an error
destination and redelivery control.
Mark van Holsteijn wrote:
> Tom,
>
> Thanks for the swift confirmation. Would it not be a handy enhancement
> to the WebLogic JMS provider?
>
> About TUXEDO: tpsubscribe() lets you subscribe a queue in a queue space
> to an event using the option TPEVQUEUE. See
> http://edocs.bea.com/tuxedo/tux81/rf3c/rf3c81.htm#1045667
>
That isn't really the same animal as pub/sub - the above call redirects
an event subscription to a particular Q, where each Q has to be manually
configured. If my understanding is correct,
you could emulate the same thing in WebLogic with just a little
bit of work: configure multiple queues, and write an EJB
method that redirects information to a particular Q based on the value
of one of its parameters (or write an MDB that does a similar
thing.)
> Cheers,
>
> Mark
>
>
> Tom Barnes wrote:
>
>> Mark van Holsteijn wrote:
>>
>>> We want to use the publish/subscribe mechanism for application
>>> integration purposes. We have one application publishing a message on
>>> a topic and multiple application that have a durable subscription on
>>> that topic.
>>>
>>> We want to control the redelivery process for an individual
>>> subscriber. When the number of retries is exceeded for a particular
>>> message it is sent to the error destination for that application. This
>>> allows us to fix the problem in the application (whatever it was) and
>>> resubmit the message to the application.
>>>
>>> We can set the Error Destination and control the redelivery process
>>> for both Topics and Queue. But is it also possible to define an error
>>> destination and redelivery process for individual durable
>>> subscriptions?
>>
>>
>>
>> No.
>>
> Thanks for the confirmation.
>
>>>
>>>
>>> Cheers,
>>>
>>> Mark van Holsteijn
>>>
>>> PS: My reference material is MQ en TUXEDO/Q. In both MQ and TUXEDO/Q
>>> you subscribe a specific Queue to a topic giving you both an error
>>> destination and redelivery control.
>>>
>>
>> I think I know what you are referring to in MQ,
>> but Tux/Q has no pub/sub capability.
>>
>
> Chec
>
>> Tom, BEA
>>
>
Similar Messages
-
Limit Amount of messages stored for durable subscribers
Hello,
Is there any way to limit the number of messages stored for durable subscribers in OpenMQ. ActiveMQ has a property you can set: constantPendingMessageLimitStrategy = 10. Does OpenMQ have a similar property?
Thanks,
EdYou can set limit on the destination that the durable subscriber subscribed to (see imqcmd create dst -o option)
-
What happens if I don't set a client id for durable subscribers?
What happens if I don't set a client id for durable subscribers?
If you do not set a clientID in 2.0, it will automatically set a clientID for
you. This means that you MUST unsubscribe the durable subscriber on the same
host (since otherwise the clientID's will be different)
In general, its good practice to set a client ID anytime you are using durables
(so that you have some control). -
Changing the selector string for durable subscribers
Hi,
I have the following scenario:
A durable subscriber registers with Selector A.
A publisher sends messages, some match selector A and some not.
The durable subscriber shuts down without unsubscribing.
After a few minutes the same durable subscriber (with the same ID)reconnects, but with a different Selector: B.
What should happen in this scenario?
Should the durable subscriber continue to receive the messages that match Selector A or only those that match Selector B?
Thank you for you help.
ShaiIf a durable subscriber changes its subscription (such as using a different topic or selector) then its the equivalent of closing the previous subscription and creating a brand new subscription.
So the short answer is no, it should only receive those that match B.
James
http://logicblaze.com/ -
Consumer for Durable subscribers keep on increasing
We have a durable subscriber with client id "ABC". We forcibly kill it to test
recovery.
Next time I start this subscriber again with same client id. Number of consumers
on this topic goes up. Everything else works fine. Only Messages pending keeps
going up too?
Not sure why consumers are increased?
Thanks
Thank you Tom and shean
I will contact support
Abahy
Tom Barnes <[email protected]> wrote:
>Either A) contact customer support to see if they will patch 6.1 no SP
>for you
>(or to see if they already have a patch)
>Or B) upgrade yourself to SP2 as you already plan (or perhaps better
>yet
>SP3, which just came out)
> and see if the problem goes away
>
>Personally I think you should go with SP2 or SP3, or perhaps even make
>the leap
>to 7.0. Especially
>since you are not in production.
>
>Note BEA newsgroups are not maintained by "customer support", although
>customer
>support will occassionally
>take a peek. The vast majority of posters are either customers or BEA
>developers that
>post on their own time.
>
>Tom, BEA
>
>Abhay wrote:
>
>> Shean,
>>
>> So what we do next?
>>
>> Abhay
>>
>> "Shean-Guang Chang" <[email protected]> wrote:
>> >The support team has all the available release and patch that is why
>> >I will
>> >pass this to them to confirm the problem.
>> >
>> >"Abhay" <[email protected]> wrote in message
>> >news:[email protected]...
>> >>
>> >> Shean,
>> >>
>> >> Did this problem existed in previous releases? With current release
>> >can
>> >you kill
>> >> the subscriber, without unsubscribing and when restarted it shows
>only
>> >one
>> >consumers
>> >> or two?
>> >>
>> >> Do you know of any way to check whether these pending messages are
>> >in
>> >uncommited
>> >> ot unacknowledged mode?
>> >>
>> >> Abhay
>> >>
>> >> "Shean-Guang Chang" <[email protected]> wrote:
>> >> >The problem is not in the current environment. I will pass this
>issue
>> >> >to our
>> >> >support team so they can verify this problem further on the 6.1
>line.
>> >> >In the
>> >> >meantime you can call BEA support to get a customer case number
>so
>> >that
>> >> >if
>> >> >the problem requires any patch the customer support will have all
>> >the
>> >> >info
>> >> >they need.
>> >> >
>> >> >Thanks!
>> >> >
>> >> >"Abhay" <[email protected]> wrote in message
>> >> >news:[email protected]...
>> >> >>
>> >> >> Shean,
>> >> >>
>> >> >> Looks like we are online. I have restarted the subscriber process
>> >and
>> >> >do
>> >> >not get
>> >> >> messages again. My preliminary analysis it is statistical problem
>> >only.
>> >> >But We
>> >> >> are building a huge EAI bus and want to get all things addressed
>> >before
>> >> >it
>> >> >comes
>> >> >> in manufacturing.
>> >> >>
>> >> >> We are using WLS6.1(no SP's). I am planning to upgrade to SP2
>in
>> >weeks
>> >> >time. I
>> >> >> looked at bugs fixed since 6.1 and there is no mention of such
>problem.
>> >> >So, not
>> >> >> confidant that upgrading to SP2 will fix problem.
>> >> >>
>> >> >> Abhay
>> >> >>
>> >> >> "Shean-Guang Chang" <[email protected]> wrote:
>> >> >> >What version of WLS you are using?
>> >> >> >So far you indicate there are some statistics issue ONLY.
>> >> >> >After those messages being consumed (committed) do you get them
>> >again?
>> >> >> >
>> >> >> >I would start the subscriber process one more time and see if
>those
>> >> >> >committed messages will be available again or not. Thanks!
>> >> >> >
>> >> >> >"Abhay" <[email protected]> wrote in message
>> >> >> >news:[email protected]...
>> >> >> >>
>> >> >> >> Thank you Shean,
>> >> >> >>
>> >> >> >> I am creating Durable subscriber with same client id and
>> >subscription
>> >> >> >name. When
>> >> >> >> listerner falls over or killed on perpose. Durable subscription
>> >> >entry
>> >> >> >count for
>> >> >> >> that clientid and subscriptionid (same) remains 1. Now we
>start
>> >> >the
>> >> >> >subscriber
>> >> >> >> process again and that increaments "consumer" count to 2.
>> >> >> >>
>> >> >> >> Is this way it should be? I am not sure. I was thinking that
>> >it
>> >> >will
>> >> >> >be
>> >> >> >intelligent
>> >> >> >> enough to say I am from the same machine with same client
>id,
>> >> >subscription
>> >> >> >id
>> >> >> >> so I am the same guy.
>> >> >> >>
>> >> >> >> Anyway, reason I started looking at this because I am having
>> >another
>> >> >> >problem.
>> >> >> >> once this restarted subscriber process consumes the message
>and
>> >> >commits
>> >> >> >session
>> >> >> >> transaction. (yes, I use createTopicSession(true, AUTO)).
>the
>> >message
>> >> >> >goes
>> >> >> >in
>> >> >> >> pending stage. I am not sure why? So I started looking everywhere.
>> >> >> >Do you
>> >> >> >know
>> >> >> >> how to find out what state these pending messages are in (uncommited
>> >> >> >or
>> >> >> >unacnkowledged)?
>> >> >> >>
>> >> >> >> Abhay
>> >> >> >>
>> >> >> >> "Shean-Guang Chang" <[email protected]> wrote:
>> >> >> >> >What release of WAS?
>> >> >> >> >
>> >> >> >> >The durable subscriber will stay around even after the termination
>> >> >> >of
>> >> >> >> >the
>> >> >> >> >Topic.
>> >> >> >> >The durable subscriber is treated as a persistent subscriber
>> >to
>> >> >the
>> >> >> >Topic
>> >> >> >> >so
>> >> >> >> >the durable subscriber will still receive all the qualified
>> >topic
>> >> >> >message
>> >> >> >> >according to the JMS spec.
>> >> >> >> >The only way through JMS API to remove the durable subscriber
>> >is
>> >> >using
>> >> >> >> >unsubscribe() and there are conditions as to when this is
>allowed
>> >> >> >(a.go.
>> >> >> >> >if
>> >> >> >> >there is a Topic currently using this durable subscriber
>then
>> >> >unsubscribe
>> >> >> >> >will fail, etc...)
>> >> >> >> >
>> >> >> >> >You said you did createDurableSubscriber under the same client
>> >> >id.
>> >> >> >Did
>> >> >> >> >you
>> >> >> >> >use the same subscription name? If the subscription name
>is
>> >different
>> >> >> >> >then
>> >> >> >> >you are creating a different durable subscriber.
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >"Abhay" <[email protected]> wrote in message
>> >> >> >> >news:[email protected]...
>> >> >> >> >>
>> >> >> >> >> We have a durable subscriber with client id "ABC". We forcibly
>> >> >kill
>> >> >> >> >it to
>> >> >> >> >test
>> >> >> >> >> recovery.
>> >> >> >> >>
>> >> >> >> >> Next time I start this subscriber again with same client
>id.
>> >> >Number
>> >> >> >> >of
>> >> >> >> >consumers
>> >> >> >> >> on this topic goes up. Everything else works fine. Only
>Messages
>> >> >> >pending
>> >> >> >> >keeps
>> >> >> >> >> going up too?
>> >> >> >> >>
>> >> >> >> >> Not sure why consumers are increased?
>> >> >> >> >>
>> >> >> >> >> Thanks
>> >> >> >> >>
>> >> >> >> >
>> >> >> >> >
>> >> >> >>
>> >> >> >
>> >> >> >
>> >> >>
>> >> >
>> >> >
>> >>
>> >
>> >
>
-
Messages for Durable Subscriber are not persisted with Distributed Topic
Setup:
- Weblogic 8.1 SP 6 cluster with two nodes on single Sun Solaris 5.8 host
- Distributed topic destination, separate JMS server with separate filestore for each node
- Standalone durable JMS client connecting to distributed topic destination using specific JNDI name.
- Messages are persistent (msg.setJMSDeliveryMode(DeliveryMode.PERSISTENT). Delivery mode override for topic destinations is set to "Persistent"
Test:
1) Both nodes up, starting durable topic subscriber -> durable subscriber is visible in Weblogic console -> sending X messages -> X messages are received :-)
2) Both nodes up, killing durable topic subscriber -> durable subscriber is still visible in Weblogic console -> sending X messages -> Messages Current Count for durable subscribers is set to X -> starting JMS client again
2a) subscribing to same node as before -> console says durable subscriber is active again -> X messages are received :-)
2b) subscribing to other node -> durable subscriber is automatically migrated by Weblogic to this node, console says that subscriber is active, but Messages Current Count is 0 (zero) -> 0 (zero) messages are received :_|
Where are my X messages gone?
Should I open a call or did I misunderstand the basics?
Thanks, PeterAccording to Bea Customer Support this is the normal behavior. If you kill a durable topic subscriber and reconnect it with the same id to another node, the old subscription is deleted and all messages still waiting to be delivered are gone.
Lesson learned: If you need failover for the server AND client use JMS queues.
Peter -
Problem creating JMS Error Destination via Ant in WLS 8.1
We've got several JMS queues in our application. We create the server via Ant (using the wlconfig task).
All is well, the queues have been working fine, until we try to add an error destination queue (after several attempts to handle the message, it'll be sent to the error queue for later troubleshooting).
Here's an example of what we've got now:
<create type="JMSQueue" name="batchQueue" property="jmsqueue">
<set attribute="JNDIName" value="net.nike.cdm.batchQueue"/>
<set attribute="RedeliveryLimit" value="5"/>
</create>We create another queue to handle the errors, and then add an attribute to the first to point to the second:
<create type="JMSQueue" name="batchErrorQueue" property="batchErrorQueue">
<set attribute="JNDIName" value="net.nike.cdm.batchErrorQueue"/>
<set attribute="RedeliveryLimit" value="5"/>
</create>
<create type="JMSQueue" name="batchQueue" property="jmsqueue">
<set attribute="JNDIName" value="net.nike.cdm.batchQueue"/>
<set attribute="RedeliveryLimit" value="5"/>
<set attribute="ErrorDestination" value="${batchErrorQueue}"/>
</create>This seems logical, because if we do this same exact operation via the console, the config.xml goes from this:
<JMSQueue JNDIName="net.nike.cdm.batchQueue"
Name="batchQueue" RedeliveryLimit="5"/>to this:
<JMSQueue ErrorDestination="batchErrorQueue"
JNDIName="net.nike.cdm.batchQueue"
Name="batchQueue" RedeliveryLimit="5"/>
<JMSQueue JNDIName="net.nike.cdm.batchErrorQueue" Name="batchErrorQueue"/>The error we get when trying to do this via Ant is:
[wlconfig] A destination and its ErrorDestination must both be on the same JMS server. (The problematic destination is "batchQueue" on JMS server "cdmdomain"). Also, an ErrorDestination can not be null if the ExpirationPolicy for a destination is "redirect" and a destination can not specify itself as its ErrorDestination.Flipping on -verbose in Ant, the actual exception is:
[wlconfig] SET -mbean cdmdomain:Name=batchQueue,Type=JMSQueue -property ErrorDestination cdmdomain:Name=batchErrorQueue,Type=JMSQue
[wlconfig] A destination and its ErrorDestination must both be on the same JMS server. (The problematic destination is "batchQueue"
s its ErrorDestination.
[if] Error in class net.sf.antcontrib.logic.IfTask
BUILD FAILED
file:C:/viewstore/CDM_R6.5_Development/B2B_CDM/dev/build.xml:1399: Error invoking MBean command: java.lang.NullPointerException
at weblogic.ant.taskdefs.management.WLConfig.handleException(WLConfig.java:567)
at weblogic.ant.taskdefs.management.WLConfig.invokeCommand(WLConfig.java:381)
at weblogic.ant.taskdefs.management.WLConfig.invokeSetCommand(WLConfig.java:235)
at weblogic.ant.taskdefs.management.WLConfig.invokeCreateCommand(WLConfig.java:163)
at weblogic.ant.taskdefs.management.WLConfig.executeCommands(WLConfig.java:106)
at weblogic.ant.taskdefs.management.WLConfig.invokeCreateCommand(WLConfig.java:167)
at weblogic.ant.taskdefs.management.WLConfig.executeCommands(WLConfig.java:106)
at weblogic.ant.taskdefs.management.WLConfig.execute(WLConfig.java:89)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:117)
at org.apache.tools.ant.Task.perform(Task.java:341)
at net.sf.antcontrib.logic.IfTask.execute(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:147)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
at org.apache.tools.ant.Project.executeTargets(Project.java:1255)
at org.apache.tools.ant.Main.runBuild(Main.java:609)
at org.apache.tools.ant.Main.start(Main.java:196)
at org.apache.tools.ant.Main.main(Main.java:235)So, my question is, what are we doing wrong? What IS the syntax to set an error destination for a JMS queue via Ant for WLS 8.1?
Any help would be greatly appreciated
Thanks,
Douglas BullardI get exactly the same problem - was a resolution to this issue found?
Thanks,
Richard Marriott
[email protected] -
Http RFC destination for ECC to PI Connection Error
Hi,
While doing the proxy runtime configuration http RFC destination for ECC to PI .
I configure the RFC destination as below ---
Target Host -- PI Host
Service No -- 50000
Path Prefix --- /sap/XI/engine/?type=entry
Login Security Details
User Id -- PI user id
Password --- PI password
While doing the Connection Test , I got the error "ICM_HTTP_CONNECTION_FAILED"
I checked T-code in ECC system SMICM and ICM is in green status and I checked the services are activated in SICF transaction.
Please let me know how to resolve this issue.
regards,
RohitHi Rahul,
I checked all service are activated in SMICM and I configured the FQDN also.
Now I cofigured the Service No --- 8000(http port no of PI) instead of 50000(J2EEport no of )
Target Host --- hostname
and did a Connection test...then I am getting a status as "http reponse 500" and status text as "empty http request received".
pls let me know is it correct configured or not.
regards,
Rohit -
Original destination for messages redelivered to error destination
Hi,
I'm writing an admin interface for our system and one part of it needs to manage
redelivery of messages. We have multiple destinations, and I have configured
one queue to act as an error queue for them all. My plan had been to allow users
to resubmit messages to their original destination - but I dont have that information.
Message.getDestination() returns my error queue, which makes sense. I was hoping
there'd be a header I could extract that might contain the name for of the original
destination, but I dont seem to be able to find it.
The only thing I can think of is to have a separate error queue for each destination,
this would allow me to assume that all messages were initially sent to the corresponding
queue - but it seems a little heavy handed... does anyone else have a better solution?
cheers
dim
Sorry Dmitri, I mixed up names here.
"Adarsh Dattani" <[email protected]> wrote in message
news:[email protected]...
> Terrence,
>
> Check out the "Error Destination Manager" sample app at
> http://dev2dev.bea.com before you write a lot of code. I have already the
> built the admin facility that you are talking about and have also included
> the source code and documentation with it. Let me know if you need any
help
> with it.
>
> AD
>
> "Dmitri Colebatch" <[email protected]> wrote in
message
> news:[email protected]...
>
> >
> > Hi,
> >
> > I'm writing an admin interface for our system and one part of it needs
to
> manage
> > redelivery of messages. We have multiple destinations, and I have
> configured
> > one queue to act as an error queue for them all. My plan had been to
> allow users
> > to resubmit messages to their original destination - but I dont have
that
> information.
> > Message.getDestination() returns my error queue, which makes sense. I
> was hoping
> > there'd be a header I could extract that might contain the name for of
the
> original
> > destination, but I dont seem to be able to find it.
> >
> > The only thing I can think of is to have a separate error queue for each
> destination,
> > this would allow me to assume that all messages were initially sent to
the
> corresponding
> > queue - but it seems a little heavy handed... does anyone else have a
> better solution?
> >
> > cheers
> > dim
> >
>
>
-
Redirection of expired message to error destination topic.
We are using weblogic 7.0 for JMS. We have two topics topic A and topic B. When
a message gets expired in TopicA, we want this to be redirected to an error destination
that is configured to Topic B. This is not working for us for Non durable subscribers.
Is there anyway to find out the messages that are expired before delivered to
the destination?
Thanks for any help.
Sudeer
Good timing!
Message redirection of expired messages is a new feature available in
8.1. This feature is not available in 7.0.
8.1 has been out for a few weeks now.
Tom, BEA
Sudeer wrote:
> We are using weblogic 7.0 for JMS. We have two topics topic A and topic B. When
> a message gets expired in TopicA, we want this to be redirected to an error destination
> that is configured to Topic B. This is not working for us for Non durable subscribers.
>
> Is there anyway to find out the messages that are expired before delivered to
> the destination?
>
> Thanks for any help.
>
> Sudeer
-
Messages in JMS Topic Error destination
Hi,
I have a JMS Topic with an error destination queue configured. Now, In our scenario , there are two subscribers of topic for the same message. Suppose for a message published to topic, subscriber1 is able to processes message successfully but subscriber2 throws errors when processing the same message.
1. Once the redelivery limit is reached and subscriber2 continues to throw exception, Will the message get en queued to Error Destination (in spite of the fact that subscriber 1 has processed the same message successfully) ?
2. For a consumer (e.g MDB) listening to Error destination and consuming error messages, Is it possible to determine which topic subscriber was unable to process the message ?
Please let me know
Regards,
ArifHere it depends on the state of the message, if the message is visible then the message would be available for consumption, else it is not. In case the subscriber 2 failed to consume the message and the message is still visible then a retry would be made, else the message would not be retried.
In case the message is visible then the message would be move to the error queue based on the configured redelivery attempts.
Additionally, an MDB can find the destination using the getJMSDestination() call. But as per my understanding we will only be able to get the name of the last destination which in this case would be error queue:
http://docs.oracle.com/javaee/1.4/api/javax/jms/Message.html#getJMSDestination%28%29 -
Hello,
I am building an application that has two WebLogic servers
communicating certain information between them using JMS. I am using
WebLogics implementation of JMS including destinations and messaging
bridges.
I am experiencing some problems.
Server 1 takes files and puts them in a Stream Message and publishes
them to a topic as shown here:
Context context = new InitialContext();
TopicConnectionFactory topicFactory = (TopicConnectionFactory)
context.lookup(sourceDescriptor.getConnectionFactory());
connection = topicFactory.createTopicConnection();
session = connection.createTopicSession(false,
Session.CLIENT_ACKNOWLEDGE);
Topic topic = (Topic)
context.lookup(sourceDescriptor.getTopicJNDIName());
TopicPublisher publisher = session.createPublisher(topic);
publisher.setDeliveryMode(DeliveryMode.PERSISTENT);
StreamMessage message = session.createStreamMessage();
for (int i = 0; i < files.length; i++)
Loop through reading a set of files into the StreamMessage publishing
each.
publisher.publish(message);
Topic config.xml
<JMSTopic JNDIName="topic/topicName"
Name="Topic Name" StoreEnabled="default"/>
Destination config.xml
<JMSBridgeDestination
AdapterJNDIName="eis.jms.WLSConnectionFactoryJNDINoTX"
ConnectionFactoryJNDIName="ConnectionFactory"
ConnectionURL="t3://localhost:7001"
DestinationJNDIName="queue/queueName" Name="Queue Destination
Name"/>
<JMSBridgeDestination
AdapterJNDIName="eis.jms.WLSConnectionFactoryJNDINoTX"
ConnectionFactoryJNDIName="ConnectionFactory"
ConnectionURL="t3://machinename:8001"
DestinationJNDIName="topic/topicName"
DestinationType="Topic" Name="Topic Source Name"/>
Messaging Bridge config.xml
<MessagingBridge
Name="The Bridge"
QOSDegradationAllowed="true" QualityOfService="Duplicate-okay"
SourceDestination="Topic Source Name"
TargetDestination="Queue Destination Name" Targets="server1"/>
Connection Factory
<JMSConnectionFactory JNDIName="ConnectionFactory"
Name="Server1 Connection Factory" Targets="server1"/>
All settings in WebLogic are default for the configuration of this as
far as I know.
The bridge is using Duplicate Ok QOS at this point.
This works like a charm as long as server which has the destination
queue is up and running and has received messages in the past.
The first problem is the first set of messesages are sent to the Queue
on Server 2 but the MDB does not pick them up. I have left it running
for an hour and these messages sit in the pending state for the
monitoring of the Queue. In order to get this first set of messages
to be processed I have to restart Server 2 at which point the initial
messages are processed. Any subsequent messages are processed by the
MDB immediately upon delivery. What is the cause of this and is there
any way around having to restart after the first messages are received
creating the file in the message store? Does this have anything to do
with the fact that there is no file in the message store until the
first messages are received and thus the MDB is not looking since
there was nothing there on start up? This seems very odd....
The second problem has to do with durability. I start Server 1 and it
waits for a finish file and when it sees it it takes the files and
puts them on the topic as described. As long as Server 2 is up and
running at that time everything is fine. If However Server 2 is not
running at that moment and is started at a later time then the
messages seem to be lost. What could cause this? Is there any way I
can visually see that the message is being held on Server 1? The
bridge from this topic on Server 1 to the queue on Server 2 is
configured on Sever 1 and you can see that it is working when Server 2
is not running due to the connection refused messages the bridge
throws. Is the bridge accepting the messages from the topic enough
for the topic to decide it is done with them and delete them? Could
the acknowledgement from the queue on another bridge for the same
topic be confusing the topic and deleteing the message before all
subscribers get it? This is a big issue since it seems that durabilty
is only guarenteed when both servers are running and a message is
created.
Any help on this would be appreciated...If you wouldn't mind cutting
and pasting any responses to my email as well it would be appreciated
as I use google for groups and it has a long turn around.
TIA...
Hi Kartheek,
Once we create a TOPIC in NWA.In durable subscribers tab subscription ID and Subscription name will be automatically created once you publish the message in to TOPIC.
check in NWA-->jms server configuration-->durable subscribers.
thanks
Purna -
Two durable subscribers with same ID in Weblogic 9.2 MP 2?
External JMS durable topic subsribers of a distributed topic destination are connected to a Weblogic cluster with 3 Nodes. The clients are started with shell scripts on different hosts. A watchdog is checking if the clients are still alive; if not, they are restarted automatically. Randomly a node of the cluster is chosen and the client is reconnected (Note: Weblogic does not support durable topic subscribers for distributed destinations, this means you cannot connect with a cluster URL)
However, from time to time we see two durable topic subscribers with the SAME ID connected on two different destinations: one of them is active, the other is not.
This should not be possible. Is this a Weblogic bug or a mis-configuration of our domain.
Thanks,
PeterIt turned out that our operating team stops the clients with "kill -9". I guess that this may be the reason that the durable subscribers remain registrated on the server? Of course, one should never use "kill -9", however sometimes this can not be avoided:
- Weblogic 8.1 SP 4 could not startup if a durable "ghost" subscriber was registrated
- Weblogic 8.1 SP 6 could handle this in a robust way!
- Weblogic 9.2 MP1/2 seems to go to an unstable state. Once, for example, we registrated 1635 connections for one Weblogic instance with the state "CLOSE_WAIT" (Of course you may argue this may be the cause of our inconvinience. However, normally this value is less than 20)
The fact that the durable subscribers are not correctly placed in the Weblogic console may not be correlated to the problem above, but just another bug. It is just annoying, as it is nearly impossible to unregister the durable "ghost" subscriber via the console. Sometimes even the subscriber id is not shown.
Do my comments sound reasonable?
Thanks, Peter -
Hi,
I have a server which connects to MQSeries topics with a durable subscriber.
Now, if my program is terminated unexpectetly, the subscriber cannot be made inactive(closed). If I then want to restart my program (so trying to connect to the topic with the same durable subscriberID), I sometimes get the error that there is still an active subscriber (which is normal, since previous one did not end correctly). Is there somehow a way to list all durable subscribers for a topic and/or to remove them (make them inactive)??
I hope my question is clear.
Thanx in advance,
Sstevenhi,
I have exactly the same problem with IBM's implementation of JMS and could not find any workaround. One of IBM redbooks claims that there is a Cleanup utility that can be used to cleanup these type of subscribers, however, the utility only supports Java 1.3. I can't seem to find a version that supports 1.2. Did you have the problem resolved? What is your solution?
Your help will be greatly appreciated!!
ckshen00 -
Hi all,
I am working on SAP PI 7.3. My scenario is to publish the incoming messages to topic and then those messages will be sent to the suitable subscribers.
When I try to configure subscribers for the topic, the following error is coming:
There are no durable subscribers registered for the selected JMS Topic.
Please help me on how to register subscribers in NWA.
Thanks,
KartheekHi Kartheek,
Once we create a TOPIC in NWA.In durable subscribers tab subscription ID and Subscription name will be automatically created once you publish the message in to TOPIC.
check in NWA-->jms server configuration-->durable subscribers.
thanks
Purna
Maybe you are looking for
-
Writing Partner Application Using Java SSO APIs
Hi Following the document "Oracle9iAS Single Sign-On Application Developer's Guide" to implement Single Sign on for Partner Applications. When try to login into the application for the first time they successfully get redirected to the Login Server.
-
Help me in Creating Function Module
Hi All, I am new to SAP, please help me doing the following task given to me. Given EE group and EE subgroup, how to write a custom function module that displays all the employees in it? The output should be displayed in 2 tables where first table ha
-
Scrolling Effects in Adobe Muse
Hey everyone, I am experimenting with the scrolling effects in Muse and I am using a pattern that tiles horizontally across the site. My pattern scrolls up and off the screen. My key position is 143. If I change this, it changes my original postion o
-
Allow or Disallow use of the Offline Files feature
Hi all! I am having an issue with Offline files on some new Windows 8.1 clients we have deployed. We wish to have Offline Files disabled for these machines, but using the GPO Setting "Computer config>Policies>Administrative Templates>Network>Offline
-
Kodo runtime requires serp.jar Is it intension?
kodo runtime requires serp.jar Is it intension? ava Web Start 1.2-beta Console, started Mon Jul 22 18:31:48 EDT 2002 Java 2 Runtime Environment: Version 1.4.0_01 by Sun Microsystems Inc. java.lang.NoClassDefFoundError: serp/util/Localizer at com.sola