I'm using the CXF service in OSGi. Server implementation is declared like
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setAddress("udp://192.168.56.1:9292/print");
factory.setServiceClass(Service.class);
factory.setServiceBean(this);
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingOutInterceptor());
factory.create().start();
I configured UDP like http://cxf.apache.org/docs/udp-transport.html
Tho,
2015-04-10 22:03 GMT+02:00 Daniel Kulp <[email protected]>:
>
> > On Apr 10, 2015, at 3:45 PM, tho huynh ngoc <[email protected]>
> wrote:
> >
> > Hi Daniel,
> >
> > Please let me know how to tune the CXF' work queue ? what is the size of
> > queue in CXF (UDP transport) ?
>
> Are you using code or spring config or OSGi or what?
>
> In code, you should be able to do something like:
>
> WorkQueueManager wqm = bus.getExtension(WorkQueueManager.class);
> AutomaticWorkQueueImpl wq = new AutomaticWorkQueueImpl("udp-transport");
> wq.setHighWaterMark(50); ///50 threads
> //any other settings here
> wqm.addNamedWorkQueue("udp-transport", wq);
>
> Do that before you startup any services. That will create a new work
> queue SPECIFICALLY for the udp transport to use. The udp transport looks
> for a queue named "udp-transport" and uses it if found. If not, it will
> use the default work queue. Thus, you could grab the DefaultWorkQueue
> from the WorkQueueManager and just call the setHighWatermark on it if you
> want. However, the default work queue is used for other use cases in CXF
> as well (one ways, some WS-RM and ws-addrressing things, async http,
> etc....) Thus, having the dedicated work queue might be best.
>
>
> The default is 25 threads and a queue depth of 256 outstanding things
> waiting to run on those threads. Lots of settings on the work queues:
>
> http://cxf.apache.org/javadoc/latest-3.0.x/index.html?org/apache/cxf/workqueue/AutomaticWorkQueueImpl.html
> (although not documented very well, or at all)
>
> Dan
>
>
>
>
>
>
> >
> > Regards,
> > Tho,
> >
> > 2015-04-10 19:54 GMT+02:00 Daniel Kulp <[email protected]>:
> >
> >>
> >>> On Apr 8, 2015, at 8:44 AM, tho huynh ngoc <[email protected]>
> >> wrote:
> >>>
> >>> Hi,
> >>>
> >>> I have developed a JAX-WS server with UDP transport. Supposing i have N
> >>> client.
> >>>
> >>> At the same time, the N client send n packet (the size of packet is M
> >>> bytes).
> >>>
> >>> My question: the maximum value of N is how many without packet loss?
> >>>
> >>> Thanks in advance for your response
> >>
> >> Would likely completely depend on the network, the speed of the machine,
> >> etc... I doubt you can get an solid number for "N".
> >>
> >> We use the mina NioDatagramAcceptor with an acceptor that just takes the
> >> datagram and then sticks the "work" onto a work queue to process and
> then
> >> goes back to listening. Thus, it should be fairly efficient. The
> default
> >> work queue uses 25 threads, but that can be tuned using CXF's work queue
> >> settings.
> >>
> >> --
> >> Daniel Kulp
> >> [email protected] - http://dankulp.com/blog
> >> Talend Community Coder - http://coders.talend.com
> >>
> >>
>
> --
> Daniel Kulp
> [email protected] - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>
>