cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aki Yoshida <elak...@googlemail.com>
Subject Re: Synchronous RM: lastMessage & offer
Date Fri, 16 Mar 2012 16:06:42 GMT
Hi Ben,
I have a few questions to your scenario.

I suppose you meant by "synchronous approach" a WS-RM scenario where
each ack message must be returned to the caller in its http response
synchronously. And do you have a request-response service, as you are
talking about the offer option?

Regarding the issue about CXF trying to send a message to www.w3.org,
there was a similar issue CXF-3777 which was fixed in 2.4.3. I'll
check how your case relates to this.

regards, aki


2012/3/16 Ben Pezzei <ben.pezzei@gmail.com>:
> Hi
>
> We are using CXF 2.4.4. for RM of one special operation. Due to
> technical issues (firewalling, loadbalancer, etc) we
> decided to use the synchronous approach.
>
> Unfortunately, we have several problems with sync. RM:
>
> Client must(!)  send an offer, if we do not send one, the server
> generates a Fault in the second response:
>  It is not possible to send a create sequence request to the anonymous address
>
> This offered id is ignored by the Destination, instead the response
> for createSourceSequence includes
> a new/other id (Although this looks ok, the source still keeps the
> offered Sequence... since in some
> cases the source wants a final SeqAck for this Sequence, startind with
> req/res Id 4).
>
> The other Problem is marking the lastMessage, When we use:
> SequenceTerminationPolicyType stp = new SequenceTerminationPolicyType();
> stp.setTerminateOnShutdown(true);
> stp.setMaxLength(1);
>
> The server/destination tries to send the TerminateSequence (ID:5) to
> www.w3.org, which
> results in a java.net.UnknownHostException:
>
> The req/res pair is as follows
>
> ID: 1 Req: createSequence with Offer 123
> ID: 1 Res: CreateSequenceResponse with generated SeqID 456
> ID: 2 Req: Sequence with 456 and content
> ID: 2 Res: SequenceAcknowledgement for 456and content
> ID: 3 Req: TerminateSequence for 456
> ID: 3 Res: looks like an ACK (occurance of <RelatesTo
> xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://www.w3.org/2005/08/addressing/unspecified</RelatesTo>)
> ID: 4 Req: SequenceAcknowledgement for 456
> ID: 5 Req: Server tries to send a TerminateSequence to
> http://www.w3.org/2005/08/addressing/anonymous
>
> If we skip the mastMessage (setMaxLength=0) there is no error in
> communication but there is also
> no terminateSequence.
>
> Hence the question if it is possible to use RM with cxf 2.4.4. in sync
> mode (and without offer and with markation of lastMessage)?
>
> Our config is straigh forward (server):
>            <wsrm-mgr:reliableMessaging>
>                <wsrm-policy:RMAssertion>
>                    <wsrm-policy:BaseRetransmissionInterval
> Milliseconds="40000"/>
>                    <wsrm-policy:AcknowledgementInterval Milliseconds="0"/>
>                </wsrm-policy:RMAssertion>
>                <wsrm-mgr:sourcePolicy>
>                <!--
>                    <wsrm-mgr:sequenceTerminationPolicy maxLength="1"/>
>                     -->
>                </wsrm-mgr:sourcePolicy>
>                <wsrm-mgr:destinationPolicy >
>                    <wsrm-mgr:acksPolicy intraMessageThreshold="10" />
>                </wsrm-mgr:destinationPolicy>
>            </wsrm-mgr:reliableMessaging>
>
> We generate the client RM Bus programmatically (initially by spring)
> with those features:
>                <property name="features">
>                        <list>
>                                <bean class="org.apache.cxf.ws.addressing.WSAddressingFeature"/>
>                                <bean class="org.apache.cxf.feature.LoggingFeature"/>
>                                <bean class="org.apache.cxf.ws.rm.feature.RMFeature">
>                        </list>
>                </property>
>
> public class RMBusFactory extends SpringBusFactory {
> ...
> ExtensionManagerBus originBus = (ExtensionManagerBus) super.createBus();
> ....
> for (AbstractFeature feature : features) {
>        feature.initialize(originBus);
> }
> originBus.setFeatures(features);
>
> any ideas?
>
> tnx & greetings
> Ben

Mime
View raw message