[JBoss-user] [Messaging, JMS JBossMQ] - Re: JMS JDBC Persistence and server restart.
Dear Forum Readers and Adrian! If you followed this thread thoughtfully perhaps you have conclusions similar to mine - as follows: The Professional Open Source Company (henceforth referenced as JBOSS) did not provide any official and detailed descriptions or how-to's about durable descriptions and topics or making messages persistent. There are lot of sources available on the web however most of them are outdated and/or contradicting each other - especially for newbies, like us. We continously failed to persist or messages under 4.0.1 AS so as a last resort we tried to get some help from the official JBOSS forum. Although my posts did not have any allusions that this was a Jboss bug (which it actually turned out to be) I was rewarded with a uniquely hostile behaviour from Adrian: anonymous wrote : The stuff you have posted does not show anything. It is just some xml out of context. | ... | All I have seen so far in this post in lots of assertions with the usual | IT DOES NOT WORK. So show me what it IS doing. . So this was the point where my project leader (henceforth referenced as mormota) came into the picture. He tried to shepherd to flow of this conversation into a constructive tunnel. (It's very funny how this good-cop, bad-coop scenario works and what a scientific degree could mean...) As time passed our developer team succesfully provided an unambigous evidence that there is a bug in the JMS handling of JBOSS and a bug report has been posted (http://jira.jboss.com/jira/browse/JBAS-1351?page=comments#action_12315048) , which was rejected firstly, however Adrian in his last post admitted that right now the 4.0.1 version is incapable of providing topic management corresponding to the EJB 2.1 recommendation. Actually that part of code could have never worked. We are working for a large telecommunication company. We, like most informatical projects have limited time and developer resources. Still it was our task to provide a detailed test-case so that JBOSS finally could accept that it is not our defect or laziness that causes the problem. Adrian, please help me! Help me to explain my costumer that JBOSS AS is the definite open source target platform that could be recommended because the thorough testing and open support! Help me to make them understand that JBOSS is not a bad and risky choice! I'will be here, waiting for your answer. Regards: Frank-15 View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3864325#3864325 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3864325 --- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag--drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [Messaging, JMS JBossMQ] - Re: JMS JDBC Persistence and server restart.
According to the JMX console, despite all efforts I am still unable to create durable subscriptions. I've searched through several web documents however there are serious discrepancies between different solutions. It is not clear (diffrent sources suggest different things) whether the jbossmq-state.xml (the one in the conf directory) should contain TopicName or simply Topic attribute in the DurableSubscriptions section, I tried both without success. I am even not sure if users are supposed to change the .xml file in question (it is included in the docs library but not in the default server configuration.) DurableSubscriptions | DurableSubscription | ClientID10001/ClientID | Namedur1/Name | TopicNameMessagingTopic/TopicName | /DurableSubscription | /DurableSubscriptions In connection with jboss.xml I've found that giving mdb-client-id attribute (which again has been suggested by several sources) results in a conflict between the ejb-jar.xml (the AS says that the client-id has been given) so I put it into a comment section (actually I don't really know what the mdb-subcription-id tag means, I couldn't found any descripiton. message-driven | ejb-nameOutboundProxyBean/ejb-name | destination-jndi-namejms/MessagingTopic/destination-jndi-name | mdb-userjohn/mdb-user |mdb-passwdneedle/mdb-passwd | !-- mdb-client-id10001/mdb-client-id -- |mdb-subscription-idmySubscription/mdb-subscription-id | /message-driven Using the 'guest' client in the ejb-jar.xml and the code segment above, viewing the DestinationManager service at jmx-console, the subscription-id is always 1 (not the 10001 value I set). Actually, the difference between client-id and subscription-id is not clear. Again I have to say, any help would be appreciated: Frank-15 View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3863077#3863077 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3863077 --- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag--drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [Messaging, JMS JBossMQ] - Re: JMS JDBC Persistence and server restart.
Well it sounds strange to me. I've set container-managed transactions for my receiver MessageDrivenBean and it seems to process the messages well (no exception occurs, etc.) Still, those messages left unprocessed (most possibbly due to heavy load) got persisted only by temporary means. So my question is still: how can you truly persist your JMS messages under JBOSS 4.0.1? Frank-15 View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3862708#3862708 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3862708 --- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almosthttp://www.thinkgeek.com/sfshirt ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [Messaging, JMS JBossMQ] - Re: JMS JDBC Persistence and server restart.
In this post I will provide a detailed description of the different settings applied to solve the persistency problems. 1. According to EJB 2.1 Standard I set the receiver MDB to Durable and give clientId and subscriptionName properties in the ejb-jar.xml. (Actually I set guestimate values to latter two attributes.) activation-config | activation-config-property | activation-config-property-namesubscriptionDurability/activation-config-property-name | activation-config-property-valueDurable/activation-config-property-value | /activation-config-property | activation-config-property | activation-config-property-nameclientId/activation-config-property-name | activation-config-property-value10001/activation-config-property-value | /activation-config-property | activation-config-property | activation-config-property-namesubscriptionName/activation-config-property-name | activation-config-property-valuedur1/activation-config-property-value | /activation-config-property | /activation-config 2. I changed the security settings in the xml containing Topic descriptions. mbean code=org.jboss.mq.server.jmx.Topic name=jboss.mq.destination:service=Topic,name=MessagingTopic | depends optional-attribute-name=DestinationManagerjboss.mq:service=DestinationManager/depends | depends optional-attribute-name=SecurityManagerjboss.mq:service=SecurityManager/depends | - | attribute name=SecurityConf | - | security | role name=guest read=true write=true create=true/ | role name=publisher read=true write=true create=false/ | role name=durpublisher read=true write=true create=true/ | /security | /attribute | attribute name=JNDINamejms/MessagingTopic/attribute | /mbean 3. As provided in my previous posts, I set everything in connection with message sending to PERSISTENT. 4. I do not have any additional components (like IBM-MSMQ Series, etc.) installed on my system. Can it be a possibble problem source? Any further help would be greatly appreciated: Frank-15 View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3862759#3862759 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3862759 --- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almosthttp://www.thinkgeek.com/sfshirt ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [Messaging, JMS JBossMQ] - Re: JMS JDBC Persistence and server restart.
Sorry, but I don't really get what you mean. According to your post the following code, which I've quoted in my previous writing means that the topic subscription is configured to be NonDurable? activation-config-property-namesubscriptionDurability/activation-config-property-name | activation-config-property-valueDurable/activation-config-property-value If so, please provide me detailed description how to make a Topic durable. Thank you in advance: Frank-15 View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3862769#3862769 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3862769 --- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almosthttp://www.thinkgeek.com/sfshirt ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [Messaging, JMS JBossMQ] - Re: JMS JDBC Persistence and server restart.
Actually, I set everything to DeliveryMode.PERSISTENT before sending the message (as follows): Destination topic = (Destination) ctx.lookup(MyJndiName); | MessageProducer publisher = session.createProducer(topic); | publisher.setDeliveryMode(DeliveryMode.PERSISTENT); | | ... | | objMsg = MySession.createObjectMessage(); | objMsg.setObject(MyMessageObject); | objMsg.setJMSDeliveryMode(DeliveryMode.PERSISTENT); | | ... | | publisher.send(objMsg, DeliveryMode.PERSISTENT, MyPriority, javax.jms.Message.DEFAULT_TIME_TO_LIVE); Still, my messages got persisted with a 'T' mark in the opcode column of JMS_MESSAGES. Any further help would be greatly appreciated. View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3862571#3862571 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3862571 --- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almosthttp://www.thinkgeek.com/sfshirt ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [Messaging, JMS JBossMQ] - JMS JDBC Persistence and server restart.
Hi, the situation is the following: my application consumes messages slower than their incoming rate is thus some of them will be persisted to a Postgres RDMS (depending on memory cache-size settings, etc.) However all of these messages will be marked with 'T' and be deleted at server restart as a result. [Actually I've found a thread with similar topic but it was dated in 2002] Questions: 1. Is this the intended way how Message Cache and Persistence Manager should work, or I missed something in my jdbc-service.xml (quoted below)? 2. How can I get around this problem? Is there a way of truly persistating messages (wo using entitybeans and other tables directly)? Thank you in advance: Frank PS I (System Spec.): Jboss 4.0.1, PostgreSQL 7.4.6 PS II (postgres-jdbc2-service.xml): ?xml version=1.0 encoding=UTF-8? !-- $Id: postgres-jdbc2-service.xml,v 1.8 2004/08/20 10:33:49 ejort Exp $ -- !-- -- !-- Persistence and caching using Postgres -- !-- IMPORTANT: Remove hsqldb-jdbc2-service.xml -- !-- -- !-- | The destination manager is the core service within JBossMQ -- depends optional-attribute-name=MessageCachejboss.mq:service=MessageCache depends optional-attribute-name=PersistenceManagerjboss.mq:service=PersistenceManager depends optional-attribute-name=StateManagerjboss.mq:service=StateManager !-- | The MessageCache decides where to put JBossMQ message that | are sitting around waiting to be consumed by a client. | | The memory marks are in Megabytes. Once the JVM memory usage hits | the high memory mark, the old messages in the cache will start getting | stored in the DataDirectory. As memory usage gets closer to the | Max memory mark, the amount of message kept in the memory cache aproaches 0. -- 50 60 jboss.mq:service=PersistenceManager !-- The PersistenceManager is used to store messages to disk. -- !-- | The jdbc2 PersistenceManager is the new improved JDBC implementation. | This implementation allows you to control how messages are stored in | the database. | | This jdbc2 PM configuration has was supplied by Stephane Nicoll in the forums as an example for Postgres -- depends optional-attribute-name=ConnectionManagerjboss.jca:service=DataSourceBinding,name=PostgresDS BLOB_TYPE=BYTES_BLOB INSERT_TX = INSERT INTO JMS_TRANSACTIONS (TXID) values(?) INSERT_MESSAGE = INSERT INTO JMS_MESSAGES (MESSAGEID, DESTINATION, MESSAGEBLOB, TXID, TXOP) VALUES(?,?,?,?,?) SELECT_ALL_UNCOMMITED_TXS = SELECT TXID FROM JMS_TRANSACTIONS SELECT_MAX_TX = SELECT MAX(TXID) FROM JMS_MESSAGES SELECT_MESSAGES_IN_DEST = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE DESTINATION=? SELECT_MESSAGE = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=? MARK_MESSAGE = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE MESSAGEID=? AND DESTINATION=? UPDATE_MESSAGE = UPDATE JMS_MESSAGES SET MESSAGEBLOB=? WHERE MESSAGEID=? AND DESTINATION=? UPDATE_MARKED_MESSAGES = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=? UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=? AND TXID=? UPDATE_MESSAGE = UPDATE JMS_MESSAGES SET MESSAGEBLOB=? WHERE MESSAGEID=? AND DESTINATION=? UPDATE_MARKED_MESSAGES = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=? UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=? AND TXID=? DELETE_MARKED_MESSAGES_WITH_TX = DELETE FROM JMS_MESSAGES WHERE TXID IN (SELECT TXID FROM JMS_TRANSACTIONS) AND TXOP=? DELETE_TX = DELETE FROM JMS_TRANSACTIONS WHERE TXID = ? DELETE_MARKED_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXID=? AND TXOP=? DELETE_TEMPORARY_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXOP='T' DELETE_MESSAGE = DELETE FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=? CREATE_MESSAGE_TABLE = CREATE TABLE JMS_MESSAGES (MESSAGEID INTEGER NOT NULL, DESTINATION VARCHAR(150) NOT NULL, TXID INTEGER, TXOP CHAR(1), MESSAGEBLOB BYTEA, PRIMARY KEY (MESSAGEID, DESTINATION)) CREATE_IDX_MESSAGE_TXOP_TXID = CREATE INDEX JMS_MESSAGES_TXOP_TXID ON JMS_MESSAGES (TXOP, TXID) CREATE_IDX_MESSAGE_DESTINATION = CREATE INDEX JMS_MESSAGES_DESTINATION ON JMS_MESSAGES (DESTINATION) CREATE_TX_TABLE = CREATE TABLE JMS_TRANSACTIONS ( TXID INTEGER, PRIMARY KEY (TXID) ) CREATE_TABLES_ON_STARTUP = FALSE - View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3861610#3861610 Reply to the post :