Martin, I don't see any real reason why your approach would not work. Running this server connection inside a servicemix-bean POJO should work just fine, I think. Perhaps something is wrong in the initialization order of thing. You could fine-tune that by using the @PostConstruct and @PreDestroy annotations. When the container is hanging at startup, could you take a look at the threads through JMX or take a thread to figure out what it is waiting for?
Regards, Gert Vanthienen ------------------------ Open Source SOA: http://fusesource.com Blog: http://gertvanthienen.blogspot.com/ 2009/2/2 Martin Kuhn <[email protected]>: > > HI, > > I've to integrate the callability of SMX4 from a mainframe. > This means that I have to run a server inside SMX which is callable from the > mainframe > > The process would be: > 1) Some ESB component (which I have to provide) starts the server process > (which connects itself to a middleware). > 2) Then the server process is callable from the mainframe and has a defined > entry point where the ESB stuff can be executed > 3) When the mainframe calls the ESB I would like to call a servicemix-bean > in a synchronous way and pass the result back to the mainframe > > I would want a really SIMPLE solution. Is it possible to define the > following peace of code in a simple bean? When I receive a host call, I > would want create a SMX MessageExchange which calls the corresponding > servicemix-bean (sync). Than I could pass the result of the service back to > the mainframe. > > I already tried to start the server in an usual servicemix-bean but the SMX > behaviour was strange (when I deployed the SA after SMX start the simple > bean approach worked -> when I had the SA already deployed when SMX starts > the SMX startup hangs) > > > Maybe to make it a little bit more transparent -> here is a sample code > fragement I have to execute as server process in SMX > In the (xml) string (sServiceRequest) I receive the information which I > need to know to call the corresponding service in SMX. > > Code fragment for receiving mainframe calls: > > > Broker broker = new Broker(brokerID, "JavaServer"); > BrokerService bService = new BrokerService(broker, serverAddr); > > // Declare one Message object to capture an incoming message and to > // hold the reply > BrokerMessage bMessage; > try { > bService.register(); > > // listen for new connections > boolean loop = true; > > while (loop) { > try { > bMessage = bService.receive(); > > // here an xml Service request comes in from mainframe > String sServiceRequest = new > String(bMessage.getMessage()); > // Perform some logic in the ESB world (message > exchange in a synchronous way, and so on) > // String resultOfEsbLogic= .... > > > bMessage.setMessage(resultOfEsbLogic); > bMessage.reply(new BrokerMessage(msg)); > } catch (BrokerException bE) { > .. > } > } > } > // deregister and logoff > bService.deregister(); > broker.logoff(); > broker.disconnect(); > } catch (BrokerException bE) { > ... > } > > I did a post already > (http://cwiki.apache.org/SM/discussion-forums.html#nabble-td21584515|a21584515) > but I'm really in doubt what I have to do > > > TIA, > Martin > -- > View this message in context: > http://www.nabble.com/Running-a-Server-inside-SMX4-%28mainframe-connection-server%29-tp21788302p21788302.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. > >
