How do I remove transactions subsystem from JBoss7? - apache-camel

I am "slimming" down a JBoss7 server for a Camel based microservice. One of my goals is to remove the number of ports being used. When I try to remove the transactions subsystem I see the following error:
JBAS014775: New missing/unsatisfied dependencies:
service jboss.txn.ArjunaRecoveryManager (missing) dependents: [service jboss.connector.transactionintegration]
service jboss.txn.ArjunaTransactionManager (missing) dependents: [service jboss.connector.bootstrapcontext.default]
service jboss.txn.TransactionManager (missing) dependents: [service jboss.connector.transactionintegration]
service jboss.txn.TransactionSynchronizationRegistry (missing) dependents: [service jboss.connector.transactionintegration]
service jboss.txn.UserTransactionRegistry (missing) dependents: [service jboss.connector.transactionintegration]
service jboss.txn.XATerminator (missing) dependents: [service jboss.connector.workmanager.default, service jboss.connector.transactionintegration, service jboss.connector.bootstrapcontext.default]
I do want to deploy ActiveMQ RAR in here so I think I will need the connector subsystem. So does that mean I will need to keep the transactions subsystem as well? If anyone has experience with slimming down the JBoss standalone especially for Camel, please let me know what you use.
Here is a Gist for the standalone: https://gist.github.com/anonymous/02320dc22b02a733c168#file-standalone-microservice-xml

JBoss AS7 starts only the services that are needed. So if you do not use WebServices, for example, the CXF stack is not started and so on. Therefore the blazing fast boot of JBoss AS7.
ActiveMQ requires transactions since they are required by JCA (Java EE Connector Architecture). It might be a better approach not to use JBoss from that what you are writing. Spring Boot/Dropwizard/Plain Tomcat or even Karaf.
If you want to get rid of ports, you should switch to WildFly. In addition to that, you can bind the unused ports to 127.0.0.1

Related

How to move BizTalk EAI services from on premises to Logic Apps which is using TCP/IP custom adaptors(designed by codeplex)

We have BizTalk EAI application which received request and send response to client using sokect switching (TCP/IP adaptors designed by codeplex) .
We need help to move EAI application from in premises to Logic Apps. Could anyone assist us to implement socket switching (TCP/IP adaptors/connectors or triggers) to receive request and sending response back to client
Thanks
Unfortunately, this is a notable gap in the available Connectors right now.
You best option is to stand up a Azure VM with a BizTalk Server instance to host this Adapter. You can connect it to the Logic Apps through Service Bus, Logic App Adapter or such.

SignalR Silverlight and LoadBalancer

We have an application with Silverlight 5 and WCF RIA backend.
Our Client's environment has load balancing but has only 30 - 40 users.
We wanted to use SignalR for messaging, but instead of using a backplane, i am planning to
install a seperate MVC service as Hub which will sit outside the Loadbalancer, where all clients can connect to.
Is this approach okay for a small user base (30 - 40 users)? And since its going to be cross domain, do i need to copy clientaccesspolicy.xml to the root folders for silverlight to work ? Or do i need to configure SignalR to allow cross domain?
Thanks !
You need both.
Enabling cross domain on SignalR server allows requests to be processed on server side.
Adding clientaccesspolicy.xml allows Silverlight to establish the connection.

Accessing EJB in WAR from remote standalone client

I have an EJB accessed remotely from a Swing client as well as locally by servlet/JSP. I want to switch the packaging for my EJB from a EJB/WAR/EAR to a EJB/WAR since it is simpler to work with.
What do I mean by simpler? In Eclipse, for example, I can have a single project with my EJB/web classes rather than having a EJB + WAR + EAR project (My client is a separate project in Eclipse).
Is it possible to package a EJB in a WAR and have it be accessible remotely?
The intent of EJB-in-WAR was primarily to simplify packaging for local EJBs used by the WAR. However, I cannot find a restriction for remote EJBs packaged in a WAR even though there are restrictions on other technologies (specifically, entity beans and JAX-RPC endpoints are not allowed), which leads me to believe remote views are allowed in WARs from a specification perspective. I don't have broad knowledge of vendor implementations, but I have tested that it works on WebSphere Application Server.
According to the web profile and EJB 3.1 specs, Java EE web profile products are only required to provide EJB Lite, which doesn't support remote clients to EJBs.
But they can provide remote ejb client connection as a product optional component.
So if you want to package remote EJBs in a WAR you'll have to look for a Java EE web server that provides this service and be aware that the same behaviour isn't required in other Java EE 6 web servers.
Useful links:
http://download.oracle.com/otndocs/jcp/javaee_web_profile-6.0-fr-eval-oth-JSpec/
http://download.oracle.com/otndocs/jcp/ejb-3.1-fr-eval-oth-JSpec/

Using Apache Cammel as a Broker for WS

Does anyone know how is the code when using apache cammel lib in my webapp to work as a broker for a WS? Is that even possible? I am doing an ESB and I would like to use cammel to help me to 'deploy' on-demand Web Services from my ERP and all other systems in a webapp, having a unique point of connection (avoiding to create a spiderweb).
see this example about how CXF can be used to proxy a web service
http://camel.apache.org/cxf-proxy-example.html

How do I check the connection status of my WCF service

I am currently developing a WCF publish subscribe service on a winform app. How do I code it in such a way that whenever a client subscribes to my service, I would be able to display a message in my textbox saying, "1 client has connected/disconnected to/from the service"
As marc said, clients don't maintain connections to WCF services, but you can monitor imaginary connections by having the clients regularly call an "I'm here" method on the service while they are "connected", and when they stop calling it, you consider them to be "disconnected". I've found this strategy to work well for a distributed processing application when I wanted to keep track of how many agents were available to do work.
Have a look at the Microsoft Duplex Services (WCF)
Duplex Services

Resources