Hi,
As cluster function is based on jms transport between nodes, so
everything should be "serializable".
For the attachment, I think you need write your Marshaler to make them
"serializable"(such as write to a Byte Array or something), as
Datahandler contain a Source which generally bind to a local resources
and it may be valid on the other node machine, you need ensure the
content of attachment is really sent to another node.
Freeman
On 2011-3-10, at 上午12:33, Pochat Jerome wrote:
I tried to use release 4.3.0 with following configurations:
Node 1
======
<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:f="http://servicemix.apache.org/file/1.0"
xmlns:t="urn:test"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://servicemix.apache.org/file/1.0 http://servicemix.apache.org/file/1.0/servicemix-file.xsd
">
<f:poller id="pollerEndpoint" service="t:File" endpoint="poller"
targetService="t:File2" targetEndpoint="sender" file="file:inbox">
<property name="marshaler">
<bean
class="org.apache.servicemix.components.util.BinaryFileMarshaler" />
</property>
</f:poller>
<bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
<bean
class
=
"org
.apache.servicemix.jbi.cluster.engine.OsgiSimpleClusterRegistration">
<property name="endpoint" ref="pollerEndpoint" />
</bean>
</beans>
Node 2
======
<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:f="http://servicemix.apache.org/file/1.0"
xmlns:t="urn:test"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://servicemix.apache.org/file/1.0 http://servicemix.apache.org/file/1.0/servicemix-file.xsd
">
<f:sender id="senderEndpoint" service="t:File2" endpoint="sender"
directory="file:outbox">
<property name="marshaler">
<bean
class="org.apache.servicemix.components.util.BinaryFileMarshaler" />
</property>
</f:sender>
<bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
<bean
class
=
"org
.apache.servicemix.jbi.cluster.engine.OsgiSimpleClusterRegistration">
<property name="endpoint" ref="senderEndpoint" />
</bean>
</beans>
Notice that I succeed to exchange XML payload with default marshalers.
Thanks for help.
________________________________________
De : Jean-Baptiste Onofré [[email protected]]
Date d'envoi : mercredi 9 mars 2011 17:22
À : [email protected]; Pochat Jerome
Objet : Re: Does the cluster engine support attachments?
Hi Jerome,
Clustering has been completely rewritten in ServiceMix 4.
I remember that we made some enhancements around the NMR to support
different
message payload (POJO, XML, etc) and attachments.
On which version did you make a try ?
Could you try on ServiceMix 4.3.0 ?
Thanks
Regards
JB
On Wed 09/03/11 16:12, "Pochat Jerome" [email protected] wrote:
Hi
Is there a way to send NormalizedMessage with attachment between
ServiceMix nodes?
"Out of the box" distribution produces
"java.io.NotSerializableException: javax.activation.DataHandler" when
trying to store NormalizedMessage into ActiveMQ queue. ServiceMix
users mailing list contains some old threads about this issue (3.x),
but about latest release (4.x)?
Thanks in advance
--
Freeman Fang
------------------------
FuseSource: http://fusesource.com
blog: http://freemanfang.blogspot.com
twitter: http://twitter.com/freemanfang
Apache Servicemix:http://servicemix.apache.org
Apache Cxf: http://cxf.apache.org
Apache Karaf: http://karaf.apache.org
Apache Felix: http://felix.apache.org