Maybe you should check if the messages are really lost by using the program
"browse". You find it in the bin-directory.
Since 4.2-Snapshot browse is implemented in activemq-admin.
I suggest that your messages are still there but Hermes gives you some
strange information.




Karthik.Gopalakrishnan wrote:
> 
> Hi 
> 
>                  I am new to activemq and now i am facing a weird problem
> with ActiveMQ(integrated with JBoss). I have a c# client which sends
> persistent messages to a queue that is created using the file
> activemq-jms-ds.xml the contents of which  is as follows
> 
> <?xml version="1.0" encoding="UTF-8"?>
> 
> <!DOCTYPE connection-factories
>     PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
>     "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd";>
> 
> <connection-factories>
> 
>    <tx-connection-factory>
>       <jndi-name>activemq/QueueConnectionFactory</jndi-name>
>       <xa-transaction/>
>       <track-connection-by-tx/>
>       <rar-name>activemq-ra.rar</rar-name>
>      
> <connection-definition>javax.jms.QueueConnectionFactory</connection-definition>
>      
> <security-domain-and-application>JmsXARealm</security-domain-and-application>
>    </tx-connection-factory>
> 
>    <mbean code="org.jboss.resource.deployment.AdminObject"
> name="activemq.queue:name=queue1">
>       <attribute name="JNDIName">queue/queue1</attribute>
>       <depends
> optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
>       <attribute name="Type">javax.jms.Queue</attribute>
>       <attribute name="Properties">
>             PhysicalName=queue.queue1
>       </attribute>
>    </mbean>
> </connection-factories>
> 
> This file is dropped in the folder location : jboss/server/default/deploy
> to be picked up by jboss.
> 
> when i use hermes to check if the message is actually posted to the queue
> i am able to see the messages being arrived there.But when i shutdown
> JBoss once and start it again the messages are no more present in that
> queue.I understood that by default queues are persistent.Is there
> something else i should be doing to make the queue really persistent,  in
> the sense i dont want the messages to be lost when JBoss is restarted.
> 
> 
> 
> I am also including the contents of the files ra.xml and broker-config.xml
> incase it might be changed :
> 
> ra.xml
> ------------------------------
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
>     Copyright 2005-2006 The Apache Software Foundation
>    
>     Licensed under the Apache License, Version 2.0 (the "License");
>     you may not use this file except in compliance with the License.
>     You may obtain a copy of the License at
>    
>     http://www.apache.org/licenses/LICENSE-2.0
>    
>     Unless required by applicable law or agreed to in writing, software
>     distributed under the License is distributed on an "AS IS" BASIS,
>     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
>     See the License for the specific language governing permissions and
>     limitations under the License.
> -->
> 
> <connector xmlns="http://java.sun.com/xml/ns/j2ee";
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>     http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd";
>     version="1.5">
>     <description>ActiveMQ  inbound and outbound JMS
> ResourceAdapter</description>
>     <display-name>ActiveMQ JMS Resource Adapter</display-name>
>     <vendor-name>activemq.org</vendor-name>
>     <eis-type>JMS 1.1</eis-type>
>     <resourceadapter-version>1.0</resourceadapter-version>
>     <license>
>         <description>
>         
>             Copyright 2005-2006 The Apache Software Foundation
>            
>             Licensed under the Apache License, Version 2.0 (the
> "License");
>             you may not use this file except in compliance with the
> License.
>             You may obtain a copy of the License at
>            
>             http://www.apache.org/licenses/LICENSE-2.0
>            
>             Unless required by applicable law or agreed to in writing,
> software
>             distributed under the License is distributed on an "AS IS"
> BASIS,
>             WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
> or implied.
>             See the License for the specific language governing
> permissions and
>             limitations under the License.
> 
>         </description>
>         <license-required>true</license-required>
>     </license>
>     <resourceadapter>
>        
> <resourceadapter-class>org.apache.activemq.ra.ActiveMQResourceAdapter</resourceadapter-class>
>         <config-property>
>             <description>
>               The URL to the ActiveMQ server that you want this connection
> to connect to.  If using
>               an embedded broker, this value should be 'vm://localhost'.
>             </description>
>             <config-property-name>ServerUrl</config-property-name>
>             <config-property-type>java.lang.String</config-property-type>
> <!--                   
> <config-property-value>tcp://localhost:61616</config-property-value>-->
>           <config-property-value>vm://localhost</config-property-value> 
>         </config-property>
>         <config-property>
>             <description>The default user name that will be used to
> establish connections to the ActiveMQ server.</description>
>             <config-property-name>UserName</config-property-name>
>             <config-property-type>java.lang.String</config-property-type>
>             <config-property-value>defaultUser</config-property-value>
>         </config-property>
>         <config-property>
>             <description>The default password that will be used to log the
> default user into the ActiveMQ server.</description>
>             <config-property-name>Password</config-property-name>
>             <config-property-type>java.lang.String</config-property-type>
>             <config-property-value>defaultPassword</config-property-value>
>         </config-property>
>         <config-property>
>             <description>The client id that will be set on the connection
> that is established to the ActiveMQ server.</description>
>             <config-property-name>Clientid</config-property-name>
>             <config-property-type>java.lang.String</config-property-type>
>         </config-property>
>         <config-property>
>             <description>Boolean to configure if outbound connections
> should reuse the inbound connection's session for sending
> messages.</description>
>             <config-property-name>UseInboundSession</config-property-name>
>             <config-property-type>java.lang.Boolean</config-property-type>
>             <config-property-value>false</config-property-value>
>         </config-property>
> 
>                         <!-- NOTE disable the following property if you do 
> not wish to deploy
> an embedded broker -->
>         <config-property>
>             <description>
>               Sets the XML configuration file used to configure the
> embedded ActiveMQ broker via 
>               Spring if using embedded mode.
>               
>               BrokerXmlConfig is the filename which is assumed to be on
> the classpath unless 
>               a URL is specified. So a value of foo/bar.xml would be
> assumed to be on the 
>               classpath whereas file:dir/file.xml would use the file
> system. 
>               Any valid URL string is supported.              
>             </description>
>             <config-property-name>BrokerXmlConfig</config-property-name>
>             <config-property-type>java.lang.String</config-property-type>
>            
> <config-property-value>xbean:broker-config.xml</config-property-value>
>         </config-property>
> 
>         <outbound-resourceadapter>
>             <connection-definition>
>                
> <managedconnectionfactory-class>org.apache.activemq.ra.ActiveMQManagedConnectionFactory</managedconnectionfactory-class>
>                
> <connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
>                
> <connectionfactory-impl-class>org.apache.activemq.ra.ActiveMQConnectionFactory</connectionfactory-impl-class>
>                
> <connection-interface>javax.jms.Connection</connection-interface>
>                
> <connection-impl-class>org.apache.activemq.ra.ManagedConnectionProxy</connection-impl-class>
>             </connection-definition>
>             <connection-definition>
>                
> <managedconnectionfactory-class>org.apache.activemq.ra.ActiveMQManagedConnectionFactory</managedconnectionfactory-class>
>                
> <connectionfactory-interface>javax.jms.QueueConnectionFactory</connectionfactory-interface>
>                
> <connectionfactory-impl-class>org.apache.activemq.ra.ActiveMQConnectionFactory</connectionfactory-impl-class>
>                
> <connection-interface>javax.jms.QueueConnection</connection-interface>
>                
> <connection-impl-class>org.apache.activemq.ra.ManagedConnectionProxy</connection-impl-class>
>             </connection-definition>
>             <connection-definition>
>                
> <managedconnectionfactory-class>org.apache.activemq.ra.ActiveMQManagedConnectionFactory</managedconnectionfactory-class>
>                
> <connectionfactory-interface>javax.jms.TopicConnectionFactory</connectionfactory-interface>
>                
> <connectionfactory-impl-class>org.apache.activemq.ra.ActiveMQConnectionFactory</connectionfactory-impl-class>
>                
> <connection-interface>javax.jms.TopicConnection</connection-interface>
>                
> <connection-impl-class>org.apache.activemq.ra.ManagedConnectionProxy</connection-impl-class>
>             </connection-definition>
>             <transaction-support>XATransaction</transaction-support>
>             <authentication-mechanism>
>                
> <authentication-mechanism-type>BasicPassword</authentication-mechanism-type>
>                
> <credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
>             </authentication-mechanism>
>             <reauthentication-support>false</reauthentication-support>
>         </outbound-resourceadapter>
>         <inbound-resourceadapter>
>             <messageadapter>
>                 <messagelistener>
>                    
> <messagelistener-type>javax.jms.MessageListener</messagelistener-type>
>                     <activationspec>
>                        
> <activationspec-class>org.apache.activemq.ra.ActiveMQActivationSpec</activationspec-class>
>                         
>                         <required-config-property>
>                            
> <config-property-name>destination</config-property-name>
>                         </required-config-property>
>                         <required-config-property>
>                            
> <config-property-name>destinationType</config-property-name>
>                         </required-config-property>
>                         
>                     </activationspec>
>                 </messagelistener>
>             </messageadapter>
>         </inbound-resourceadapter>
>         <adminobject>
>             <adminobject-interface>javax.jms.Queue</adminobject-interface>
>            
> <adminobject-class>org.apache.activemq.command.ActiveMQQueue</adminobject-class>
>             <config-property>
>                 <config-property-name>PhysicalName</config-property-name>
>                
> <config-property-type>java.lang.String</config-property-type>
>             </config-property>
>         </adminobject>
>         <adminobject>
>             <adminobject-interface>javax.jms.Topic</adminobject-interface>
>            
> <adminobject-class>org.apache.activemq.command.ActiveMQTopic</adminobject-class>
>             <config-property>
>                 <config-property-name>PhysicalName</config-property-name>
>                
> <config-property-type>java.lang.String</config-property-type>
>             </config-property>
>         </adminobject>
>     </resourceadapter>
> </connector>
> 
> 
> broker-config.xml
> ------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
>     Copyright 2005-2006 The Apache Software Foundation
>    
>     Licensed under the Apache License, Version 2.0 (the "License");
>     you may not use this file except in compliance with the License.
>     You may obtain a copy of the License at
>    
>     http://www.apache.org/licenses/LICENSE-2.0
>    
>     Unless required by applicable law or agreed to in writing, software
>     distributed under the License is distributed on an "AS IS" BASIS,
>     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
>     See the License for the specific language governing permissions and
>     limitations under the License.
> -->
> <!-- START SNIPPET: xbean -->
> <beans xmlns="http://activemq.org/config/1.0";>
> 
>   <broker useJmx="true" brokerName="bruce.broker1">
> 
>       <!-- In ActiveMQ 4, you can setup destination policies. note: this xml
> format may still change a bit -->
>     <destinationPolicy>
>       <policyMap><policyEntries>
> 
>           <policyEntry topic="FOO.>">
>             <dispatchPolicy>
>               <strictOrderDispatchPolicy />
>             </dispatchPolicy>
>             <subscriptionRecoveryPolicy>
>               <lastImageSubscriptionRecoveryPolicy />
>             </subscriptionRecoveryPolicy>
>           </policyEntry>
> 
>       </policyEntries></policyMap>
>     </destinationPolicy>
> 
> 
>     <persistenceAdapter>
>       <journaledJDBC journalLogFiles="5"
> dataDirectory="../activemq-data"/>
>       <!-- To use a different datasource, use th following syntax : -->
>       <!--
>       <journaledJDBC journalLogFiles="5" dataDirectory="../data"
> dataSource="#postgres-ds"/>
>        -->
>     </persistenceAdapter>
> 
>     <transportConnectors>
>       <!-- prefixing a connector with discovery: causes the connector to
> be advertiesed over rendezvous -->
>       <transportConnector name="bruce.broker1" uri="tcp://localhost:61616"
> discoveryUri="multicast://default"/>      
>     </transportConnectors>
> 
>     <networkConnectors>
>       <!-- by default just auto discover the other brokers -->
>       <networkConnector uri="multicast://default"/>
>       <!--
>       <networkConnector
> uri="static://(tcp://host1:61616,tcp://host2:61616)"/>
>       -->
>     </networkConnectors>
> 
>   </broker>
> 
> 
> </beans>
> 
> 
> 
> Thanks in advance
> 
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Problems-with-Persistent-Messages-tf3445893s2354.html#a9615815
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to