Hi,

I am running IBM Performance Harness with ActiveMQ 4.1.1 and it is giving me
bad string error (Caused by: java.io.UTFDataFormatException: bad string)
when it is unmashalling the data on correlationId  ... the database is Derby
and i am using jdbcPersistance adapter for persistence. Can someone pls
telling why this is happening.

O.S = Ubuntu
version=4.1.1 (ActiveMQ)
IBM Performance Harness address:
http://www.alphaworks.ibm.com/tech/perfharness

*
The command that i ran for testing is:*

java -cp ./apache-activemq-4.1.1.jar:./perfharness.jar JMSPerfHarness -tc
jms.r11.PutGet -nt 1 -pp -tx -pc JNDI -ii
org.apache.activemq.jndi.ActiveMQInitialContextFactory -iu
tcp://localhost:61616 -cf ConnectionFactory -d dynamicQueues/myqueue -rl 20
-mu true -rt 100 -mf message.txt

*ActiveMQ configuration:*

<beans>

  <!-- Allows us to use system properties as variables in this configuration
file -->
  <bean class="
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>

  <broker brokerName="localhost" useJmx="true" xmlns="
http://activemq.org/config/1.0";>

    <!-- In ActiveMQ 4, you can setup destination policies -->
    <destinationPolicy>
      <policyMap><policyEntries>

          <policyEntry topic="FOO.>">
            <dispatchPolicy>
              <strictOrderDispatchPolicy />
            </dispatchPolicy>
            <subscriptionRecoveryPolicy>
              <lastImageSubscriptionRecoveryPolicy />
            </subscriptionRecoveryPolicy>
          </policyEntry>

      </policyEntries></policyMap>
    </destinationPolicy>


    <persistenceAdapter>
      <jdbcPersistenceAdapter  dataSource="#derby-ds"/>
    </persistenceAdapter>

    <transportConnectors>
       <transportConnector name="openwire" uri="tcp://localhost:61616"
discoveryUri="multicast://default"/>
       <transportConnector name="ssl"     uri="ssl://localhost:61617"/>
       <transportConnector name="stomp"   uri="stomp://localhost:61613"/>
    </transportConnectors>

    <networkConnectors>
      <networkConnector name="default-nc" uri="multicast://default"/>
    </networkConnectors>

  </broker>
  <!-- Embedded Derby DataSource Sample Setup -->
  <bean id="derby-ds" class="org.apache.derby.jdbc.EmbeddedDataSource">
    <property name="databaseName" value="derbydb"/>
    <property name="createDatabase" value="create"/>
  </bean>

</beans>


*Error:*
java.lang.RuntimeException: java.io.IOException: Failed to broker message:
ID:StarDust-47427-1195051460634-1:0:1:1:1 in container:
java.io.UTFDataFormatException: bad string
        at
org.apache.activemq.broker.region.IndirectMessageReference.incrementReferenceCount
(IndirectMessageReference.java:103)
        at org.apache.activemq.filter.MessageEvaluationContext.getMessage(
MessageEvaluationContext.java:55)
        at org.apache.activemq.filter.MessageEvaluationContext.isDropped(
MessageEvaluationContext.java:48)
        at org.apache.activemq.filter.PropertyExpression.evaluate(
PropertyExpression.java:152)
        at org.apache.activemq.filter.ComparisonExpression$1.evaluate(
ComparisonExpression.java:197)
        at org.apache.activemq.filter.ComparisonExpression.matches(
ComparisonExpression.java:455)
        at org.apache.activemq.broker.region.AbstractSubscription.matches(
AbstractSubscription.java:92)
        at
org.apache.activemq.broker.region.policy.RoundRobinDispatchPolicy.dispatch(
RoundRobinDispatchPolicy.java:52)
        at org.apache.activemq.broker.region.Queue.dispatch(Queue.java:520)
        at org.apache.activemq.broker.region.Queue.access$600(Queue.java:75)
        at org.apache.activemq.broker.region.Queue$3.afterCommit(Queue.java
:341)
        at org.apache.activemq.transaction.Transaction.fireAfterCommit(
Transaction.java:83)
        at org.apache.activemq.transaction.LocalTransaction.commit(
LocalTransaction.java:71)
        at org.apache.activemq.broker.TransactionBroker.commitTransaction(
TransactionBroker.java:154)
        at org.apache.activemq.broker.BrokerFilter.commitTransaction(
BrokerFilter.java:94)
        at org.apache.activemq.broker.BrokerFilter.commitTransaction(
BrokerFilter.java:94)
        at org.apache.activemq.broker.MutableBrokerFilter.commitTransaction(
MutableBrokerFilter.java:104)
        at
org.apache.activemq.broker.TransportConnection.processCommitTransactionOnePhase
(TransportConnection.java:424)
        at org.apache.activemq.command.TransactionInfo.visit(
TransactionInfo.java:99)
        at org.apache.activemq.broker.TransportConnection.service(
TransportConnection.java:294)
        at org.apache.activemq.broker.TransportConnection$1.onCommand(
TransportConnection.java:185)
        at org.apache.activemq.transport.TransportFilter.onCommand(
TransportFilter.java:65)
        at org.apache.activemq.transport.WireFormatNegotiator.onCommand(
WireFormatNegotiator.java:133)
        at org.apache.activemq.transport.InactivityMonitor.onCommand(
InactivityMonitor.java:122)
        at org.apache.activemq.transport.TransportSupport.doConsume(
TransportSupport.java:84)
        at org.apache.activemq.transport.tcp.TcpTransport.run(
TcpTransport.java:137)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: Failed to broker message:
ID:StarDust-47427-1195051460634-1:0:1:1:1 in container:
java.io.UTFDataFormatException: bad string
        at org.apache.activemq.util.IOExceptionSupport.create(
IOExceptionSupport.java:31)
        at org.apache.activemq.store.jdbc.JDBCMessageStore.getMessage(
JDBCMessageStore.java:107)
        at org.apache.activemq.store.ProxyMessageStore.getMessage(
ProxyMessageStore.java:48)
        at
org.apache.activemq.broker.region.IndirectMessageReference.incrementReferenceCount
(IndirectMessageReference.java:95)
        ... 26 more
Caused by: java.io.UTFDataFormatException: bad string
        at org.apache.activemq.util.DataByteArrayInputStream.readUTF(
DataByteArrayInputStream.java:277)
        at
org.apache.activemq.openwire.v2.BaseDataStreamMarshaller.looseUnmarshalString
(BaseDataStreamMarshaller.java:536)
        at org.apache.activemq.openwire.v2.MessageMarshaller.looseUnmarshal(
MessageMarshaller.java:201)
        at
org.apache.activemq.openwire.v2.ActiveMQMessageMarshaller.looseUnmarshal(
ActiveMQMessageMarshaller.java:101)
        at
org.apache.activemq.openwire.v2.ActiveMQTextMessageMarshaller.looseUnmarshal
(ActiveMQTextMessageMarshaller.java:101)
        at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(
OpenWireFormat.java:349)
        at org.apache.activemq.openwire.OpenWireFormat.unmarshal(
OpenWireFormat.java:204)
        at org.apache.activemq.store.jdbc.JDBCMessageStore.getMessage(
JDBCMessageStore.java:104)
        ... 28 more


-- 
Regards,
Hasnain M Iqbal
M.Sc Software Engineering in Distributed System
KTH - Royal Institute of Technology

For what shall it profit a man, if he shall gain the whole world, and lose
his own soul?

Reply via email to