Are you using non-persistent messaging? Otherwise your messages will
get written to disk as part of the serialization effort in the broker,
irrespective of whether or not you are serializing in the transport
layer.
On 1/15/07, magic.moose <[EMAIL PROTECTED]> wrote:
Hey all,
AcitveMQ 4.1.0, Jencks 1.1
I'm trying not to serialized ObjectMessage content while using jvm
transport. I can't force connectionFactory (or something else) to stop
serializing.
This is how the Spring conf looks like:
<bean id="connectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>vm://localhost</value>
</property>
<property name="objectMessageSerializationDefered">
<value>true</value>
</property>
</bean>
<bean id="jmsResourceAdapter"
class="org.apache.activemq.ra.ActiveMQResourceAdapter">
<property name="connectionFactory" ref="connectionFactory"/>
</bean>
<bean id="jencks" class="org.jencks.JCAContainer">
<property name="bootstrapContext">
<bean
class="org.jencks.factory.BootstrapContextFactoryBean">
<property name="threadPoolSize" value="5"/>
</bean>
</property>
<property name="resourceAdapter">
<ref bean="jmsResourceAdapter"/>
</property>
</bean>
<bean id="eventQueueConsumer" class="org.jencks.JCAConnector">
<property name="jcaContainer" ref="jencks" />
<property name="activationSpec">
<bean
class="org.apache.activemq.ra.ActiveMQActivationSpec">
<property name="destination" value="eventQueue"
/>
<property name="destinationType"
value="javax.jms.Queue" />
</bean>
</property>
<property name="ref" value="dispatcher" />
</bean>
<!-- for sending-->
<bean id="jmsFactory"
class="org.apache.activemq.pool.PooledConnectionFactory">
<property name="connectionFactory" ref="connectionFactory"/>
</bean>
<bean id="eventSender"
class="com.avedya.zapzone2.eventframework.client.EventQueueClient"
singleton="true">
<property name="jmsTemplate">
<bean class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref local="connectionFactory" />
</property>
</bean>
</property>
<property name="queueName">
<value>eventQueue</value>
</property>
</bean>
</beans>
The eventSender class uses MessageCreator:
private class ObjectMessageCreator implements MessageCreator{
private Serializable object;
public ObjectMessageCreator(Serializable object){
this.object = object;
}
public Message createMessage(Session session) throws
JMSException {
ObjectMessage msg = session.createObjectMessage();
msg.setObject(object);
return msg;
}
}
and sends using:
jmsTemplate.send(queueName,new ObjectMessageCreator(event));
what I get is:
Caused by: java.io.NotSerializableException: javax.mail.internet.MimeMessage
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at
org.apache.activemq.command.ActiveMQObjectMessage.storeContent(ActiveMQObjectMessage.java:96)
where MimeMessage is a part of serializable Object being sent.
Perhaps I do something wrong. I took me a while to figure out how to force
resourceAdpater to use given connectionFactory so I know there is a lot of
things I dont know about ActiveMq. Anyway, seems like setting
objectMessageSerializationDefered doesnt really do the trick.
I appreciate your help.
m.
--
View this message in context:
http://www.nabble.com/Can%27t-turn-ObjectMessage-serialization-OFF%21%21-tf3016083.html#a8375884
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
--
James
-------
http://radio.weblogs.com/0112098/