Ok. Two questions then : 1) Why the file component is not take into account the global parameters? 2) How I can set up such values for file component in xbean.xml ? The example you gave is about sm:container.
Regards. Jean-Baptiste Onofré wrote: > > Hi, > > have you just defined the global corePoolSize, maximumPoolSize and > queueSize properties in the conf/servicemix.properties file or do you > have defined component specific configuration ? > > For your information, you can define the thread/queue configuration on > one component depending of the flow type used. > > For example, for the file component, you can define something like: > > <entry key="flow.seda.servicemix-file"> > <bean > class="org.apache.servicemix.executors.impl.ExecutorConfig"> > <property name="corePoolSize" value="32"/> > <property name="maximumPoolSize" value="-1"/> > <property name="queueSize" value="1024"/> > </bean> > > I think that in your case, the global thread/queue configuration is > enough the CXF components (largely enough :)) but maybe not enough for > the file component. > > Try to decrease the global properties values and define the thread > configuration specific for the servicemix-file component. > > You can find more information about this here: > http://servicemix.apache.org/thread-pools.html > > Regards > JB > > jcamus wrote: >> Hi! >> I am trying to send into the NMR 2000 messages in a row but ESB seems >> stuck >> after 1000 messages. >> My design is the following : >> CXF-BC -> CXF-SE -> FileSender >> >> So a SOAP Client is sending 2000 times the same request (in a simple >> loop, >> so no multithread) and in the CXF-SE here is method called : >> >> Here is the code : >> >> public void sendFile(String filename, byte[] fileContent, String >> deviceCode, >> int operatorCode) { >> filename = operatorCode + "-" + deviceCode + "-" + filename; >> try { >> InOnly exchange = getClient().createInOnlyExchange(); >> exchange.setService(m_incomingService); >> ServiceEndpoint endPoint = >> getClient().getContext().getEndpoint(m_incomingService, >> m_incomingSenderEndpoint); >> exchange.setEndpoint(endPoint); >> NormalizedMessage messageToSend = exchange.getInMessage(); >> messageToSend.setProperty(DefaultFileMarshaler.FILE_NAME_PROPERTY, >> filename); >> DataSource fileSource = new ByteDataSource(fileContent); >> DataHandler handler = new DataHandler(fileSource); >> messageToSend.addAttachment(DefaultFileMarshaler.FILE_CONTENT, >> handler); >> getClient().send(exchange); >> } catch (Exception e) { >> m_gLogger.error("Error sendfile : filename " + filename + " >> deviceCode >> = " + deviceCode + " operatorCode = " + operatorCode, e); >> } >> } >> >> private ServiceMixClient getClient() throws Exception { >> if (m_client == null) { >> ClientFactory factory = (ClientFactory) new >> InitialContext().lookup(ClientFactory.DEFAULT_JNDI_NAME); >> m_client = factory.createClient(); >> } >> return m_client; >> } >> >> >> >> I tried to change the values into servicemix.conf like this (without >> success) : >> >> servicemix.corePoolSize = 64 >> servicemix.maximumPoolSize = 1280 >> servicemix.queueSize = 2560 >> >> Can you explain me why the ESB freezes? When it happens I have to restart >> the ESB.. and all the messages pending are lost... >> Where am I wrong? Did I forget to free a resource? >> >> If I replace the code above but a simple copyFile into the CXF-SE it >> works >> fine... >> >> >> > > -- View this message in context: http://old.nabble.com/Can%27t-send-2000-messages-into-the-NMR-%3A-ESB-is-stuck-after-1000...-tp26269556p26269847.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
