Multiple durable subscribers and message redelivery
I am using WLS 8.1 SP1. I have a topic that has several durable MDB subscribers. In the case one of the MDB rolled back the TX, upon redelivery of the message, do all durable subscribers receive the message again, or just the one that rolled back the TX gets the redelivered message?
Thanks.
Hi Eric!
Each durable subscription gets its own copy of each published message, and only one MDB deployment can attach to a particular durable subscription at a time. So when an MDB durable subscriber rolls back the receive of a message, the rolled back message will be redelivered to the same MDB deployment only.
The same reasoning applies to non-durable subscriptions as well.
Tom, BEA
Similar Messages
-
Weblogic admin - deleting multiple durable subscribers?
I may be in the wrong forum, but there is a problem in our code that has resulted in over 700 inactive durable subscribers. From the weblogic console gui, I can only delete these one by one. Is there a way to delete multiple subscribers (perhaps from the command line) without deleting the JMSTopic. One by one will take quite a long time.
thanks in advance - DanIf the store has no data that you care about, you could shutdown WebLogic and delete the store's file(s) (or database table(s) if its a JDBC store), then restart WebLogic.
The durable subscriber delete is available on the runtime mbeans, so another option is to write a WLST script or java program to call the deletes. I don't personally have any sample code for this.
Tom -
Durable subscribers loosing messages
Hi,
This is wls 8.1.4
We have a distributed topic (T) with durable subscribers (DS)connected to both the member topics.
Looks like the DS's connected to Member Topic 1 (MT1) loose some of the messages posted to T.
DS's connected to MT2 get all the messages.
From the admin console I also see that one of the Weblogic durable subscribers to MT1 is inactive and has a backlog.
Not sure if this is causing the problem.
WeblogicJmsDistributedTopic@Remote@MT1@Local@MT2@Dist@T
is inactive and has backlog
WeblogicJmsDistributedTopic@Remote@MT2@Local@MT1@Dist@T
is active
Thanx,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 -
How many durable subscribers can a session have?
On the API doc for session.createDurableSubscriber(), it is documented that:
"Sessions with durable subscribers must always provide the same client identifier. In addition, each client must specify a name which uniquely identifies (within client identifier) each durable subscription it creates. Only one session at a time can have a TopicSubscriber for a particular durable subscription. An inactive durable subscriber is one that exists but does not currently have a message consumer associated with it."
If a "particular durable subscription" is uniquely identified by client id and subscriber name, does that mean a session cannot have multiple durable subscribers, even though they are for different topics?
EdAnswer is yes: a session can have multiple durable subscriptions, but only one active subscriber (or message listener) for a particular durable subscription.
-
I have one apple ID and multiple family members share this with their individual devices. How do we keep pics and messages separate for each device?
For messages
MacMost Now 653: Setting Up Multiple iOS Devices For Messages and FaceTime
For other issue:
How to use multiple iPods, iPads, or iPhones with one computer
What is the best way to manage multiple...: Apple Support Communities -
nable to convert pdf to any other format. Tried cloud as well as acrobat reader. Reader error message "unable to contact service" and Cloud message "conversion error". I tried multiple pdf documents and checked security settings on all of them. Help Please!
Hi skydivingsnowman,
I'm sorry you're having such trouble using the ExportPDF service. What browser are you using?
Please try clearing your browser cache, or using a different browser (here's a list of supported browsers: http://www.adobe.com/acom/systemreqs/.
Please let me know if that works.
Best,
Sara -
Create durable subscribers, JMSAdapter JNDI and DBAdapter JNDI using WLST
Hi All,
I have developed some WLST scripts to create new JMS servers, JMS modules which includes queues, topics and connection factories, data sources, etc.
I can successfully create topics using WLST but I cannot see any option to create durable subscribers using WLST. Also, I can create JMS server JNDIs along with its modules but I am unable to create JMSAdapter JNDI ( under Deployments ) using WLST.
Can anyone please help me out?
Thanks in advance,
-KaranHi,
I have the same problem, and when I try to record it. The py file contains nothing.
I know sometime weblogic server doesn't record, such as outbound connection factory. I guess durable Subscribers is another one.
Anyone know know to do this?
Cheers,
Tim -
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)
-
Query regarding durable subscribers in JMS Adapter (11g)
Hi , I am facing some issue with using durable subscribers..
I am doing a POC in which I have two consumers (consumer 1 and consumer 2) listening to a topic.
On the server console, the monitor tab of the JMS topic shows number of consumers as 2 which is good.
Also, when any message is put on the topic , BPEL processes for both consumers get triggered as expected.
Now, I add durable subscriber ID as 123 to one of the consumers (consumer 1)
After deploying the code, the count for the number of current consumers listening becomes 1.
So I create a durable subscriber on the console with id as 123 after which the consumer count is back to 2.
The issue however is that, now when I put a message on topic , only consumer 2 is triggered.
The message for consumer 1 can be seen on the durable subscriber 123's page.
My question is that, since the consumer is listening to the topic then why is the message going to the subscriber instead of creating instance ?
I also tried following :
1. created a new outbound connection pool in the resource adapter
2. setting property FactoryProperties to value "ClientID=123"
3. pointing the adapter connection factory to this new location
but this is also not helping.
Could anyone please help me out in this ?
Thanks and Regards,
Ketandid u have any luck? can u tell me steps
-
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 -
Doubt about durable subscribers
I read this in the weblogic docs
For durable subscriptions, WebLogic JMS stores a message in a persistent
file or database until the message has been delivered to the subscribers
or has expired, even if those subscribers are not active at the time
that the message is delivered. A subscriber is considered active if the
Java object that represents it exists. Durable subscriptions are
supported for Pub/Sub messaging only.
Now how does the weblogic server know how many subscribers are there? To
describe more accurately
1. One weblogic server, say version 7.0. One topic has been configured
along with
the other required stuff.
2. Suppose 3 subcribers connect to the server
3. A message is sent to the topic.
4. Now if I kill one of the subscribers then is weblogic going to wait
to deliver to the killed subscriber before marking the message as
delivered?
Shiva.
WebLogic does not do anything different than any other
JMS vendor. The behavior of durable subscriptions is
explicitly defined in the JMS standards.
The durable subscriber client explicitly creates "subscription"
when it first comes up. The JMS server stores a record of this
subscription both in memory and on disk. The subscription
does not go away until the client explicitly calls
"unsubscribe" to delete it. The subscription,
as per the JMS spec, is uniquely identified by a combination
of: the topic specified by the client, the connection-id
specified by the client, and the subscriber-id specified by
the client. The subscription is not identified in any
way by "JVM id". All messages sent after the subscription
is created accumulate, even if the client is disconnected.
The client reconnects by specifying by subscribing with the
same identifiers it used to so subscribe previously.
Tom
Shiva P wrote:
> Guess my question is not clear. Here it is again.
>
> How does weblogic know that it has to wait for the durable subscriber? I mean
> is it the JVM id of the subscriber or some other unique thing that weblogic
> uses to know about all the durable subscribers?
>
> shiva.
>
> Tom Barnes wrote:
>
>
>>Shiva P wrote:
>>
>>>I read this in the weblogic docs
>>>For durable subscriptions, WebLogic JMS stores a message in a persistent
>>>file or database until the message has been delivered to the subscribers
>>>or has expired, even if those subscribers are not active at the time
>>>that the message is delivered. A subscriber is considered active if the
>>>Java object that represents it exists. Durable subscriptions are
>>>supported for Pub/Sub messaging only.
>>>
>>>Now how does the weblogic server know how many subscribers are there? To
>>>describe more accurately
>>>
>>>1. One weblogic server, say version 7.0. One topic has been configured
>>>along with
>>>the other required stuff.
>>>2. Suppose 3 subcribers connect to the server
>>>3. A message is sent to the topic.
>>>4. Now if I kill one of the subscribers then is weblogic going to wait
>>>to deliver to the killed subscriber before marking the message as
>>>delivered?
>>
>>Yes, if the subscription is durable.
>>
>>Durable subscription continue to exist even if the consumer
>>is killed (or closed). Messages continue to accumulate in
>>them. This is the whole purpose of durable subscriptions. If
>>you want the messages to go away when the consumer goes away
>>do not use a durable subscriptions.
>>
>>Tom
>>
>>
>>>Shiva.
>>>
>>
>
-
Non-durable subscribers persists after the end of their JMS session
Hi all,
I'm using OAQ as my JMS Provider.
I have created code for publishing and recieving messages to/from topics. Messaging works fine, but I have one problem:
All my non-durable subscribers persists after the end of their JMS session. I always perform unsubscribe operation in code and then closing session and connection.
When I subscribe to topic, there's one more line in DB table ( etc. NAME: TSUB_1_24E6DB98A2EB7712E040A8C, TYPE: 65). I have expected that subscribers will be deleted after performing unsubscribe operation, but they don't...
Can you help me with this problem? Thanks for any answer.
Best Regards,
JurajHave you found a solution to this yet - because I face the same problem
-
Is it possible to "purge" durable subscriptions established by JMS clients ? Any APIs available for this ?
Here is the scenrio. My application has a unique ID. The application establishes durable subscribers to a few topics. The uniqe ID is used in the setClientID() of the topic connection. Based on the messages it receives, the application would create more durable subscribers . All the subscribers are
created off of the same topic connection object.
When I "uninstall" the application, I want to "unsubscribe" or "remove" all the subscriptions established by the application. All I know about the application is the Unique ID and I do not know the subscriber id of the individual durable subscribers.
So, my question is, is it possible to "remove" all the subscription created by the application given the client id used in the application ?
TopicSession.unsubscribe() wont work for me because I do not know the subscriber id.
Is there a "Management" API availabe to to this ?There is no management API to do what you described.
The MQ administration utilities do have support for purging
and destroying durable subscribers though. See the
'Managing Durable Subscriptions' section of chapter 6 in
the MQ Administration Guide.
imqcmd list dur -d topicName
imqcmd purge dur -n durableName -c clientID
imqcmd destroy dur -n durableName -c clientID
hope this helps,
-isa -
Durable Subscribers active to true
I created a durable subscriber..but i stuck at making active to true....by default it is FALSE..
please reply soonHi 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 -
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
-
"..no bootable device insert boot disk and press any key", i restarted my mac and held options and managed to log in to my OS x again but my windows wasn't installed and when i held options while my mac was starting the usb flash drive wasn't there,
-
URGENT HELP *** Need to load BOM Header TEXT
Hello Experts, How can i load BOM Header text using LSMW Thanks S
-
Rulers don't show in elements12, just a plain black line
I have PSE 12 and I cannot bring up the 'Rulers' all I get is a black line with no markings on it. I have tried everything I know including re-installing from the wed
-
UIX Submit Validation - Internal Server Error
My UIX page (lean test page) contains the following code: <contents> <form name="test"> <contents> <textInput text="Norbert" name="Norbert" > <onSubmitValidater> <regExp pattern="Norbert" /> </onSubmitValidater> </textInput> <submitButton text="Submi
-
IMovie 9 can't Sony Camcorder (DSR-370) or deck (DSR-11)
iMovie 9 not able to recognize a Professional Sony Camcorder (DSR-370) or deck (DSR-1). I just bought an iMac for video editing because of all the great things I heard about the Mac family. Well, I starting to feel sorry I did. Just to see if the iMa