JMX can be used to manage any Java Application in running state. Is there any restrictions of using JMX with Mule 4.x.x runtimes ?
It is the same as any Java application. Mule 4 by itself doesn't provide any specific JMX functionality.
Related
I'm trying to deploy a Mule application which uses Hazelcast to cache the result of some methods that are frequently used. However, while deploying the application I got the following error:
java.lang.ClassCastException: Cannot cast com.hazelcast.client.txn.ClientTxnPortableHook to com.hazelcast.nio.serialization.PortableHook
at java.lang.Class.cast(Class.java:3176) ~[?:1.7.0_79]
at com.hazelcast.util.ServiceLoader$1.next(ServiceLoader.java:97) ~[hazelcast-3.1.6.jar:3.1.6]
at com.hazelcast.nio.serialization.PortableHookLoader.load(PortableHookLoader.java:48) ~[hazelcast-3.1.6.jar:3.1.6]
at com.hazelcast.nio.serialization.PortableHookLoader.(PortableHookLoader.java:41) ~[hazelcast-3.1.6.jar:3.1.6]
I've tried to use the loader override function by placing the next setting in mule-deploy.properties:
loader.override=-com.hazelcast
The Mule application uses Hazelcast 3.5, and Mule 3.6.2 EE uses Hazelcast 3.1.6. Can you tell me a possible solution?
I have reviewed the link provided by Enrique (ClassCastException when casting to the same class) and it was useful because there were two different classpaths, but there were other aspects to be considered in the solution of the problem:
The Hazelcast versions were different. The Mule application used Hazelcast 3.5, and Mule 3.6.2 EE used Hazelcast 3.1.6.
There was not log configuration for Hazelcast in the mule server.
Because I really need to use the Hazelcast 3.5, it was not a choice to downgrade the Hazelcast to 3.1.6. So, I had to replace the version of the Hazelcast in the mule server to 3.5 and remove this library from the Mule application. And then I had to made a lot of tests to discard possible incompatibility issues. The tests were successful.
For the log configuration for Hazelcast in the mule server, I had to add the next JVM parameter to the mule server wrapper:
wrapper.java.additional.44=-Dhazelcast.logging.type=log4j
I used "log4j" because I was using Log4j2. You can see more information about this configuration in the next link:
http://docs.hazelcast.org/docs/3.5/manual/html/logging.html
We need to monitor HornetQ messaging (part of Jboss) - monitoring is in terms of message arrival in queue, number of messages, messages consumed, auditing message payload. Does HornetQ expose JMX Mbean to monitor this process?
As part of integration strategy this information has to be displayed on Mule Management Console. Mule Management Console can probe only mule instances mbeans. To overcome this we probably need to write custom mbean in Mule which connect to HornetQ messaging, same can be probably displayed on MMC. How do we write custom JMX Mbean on mule and this needs to deployed on to mbean server (agent) and scheduled?
Thanks
Personally I have never tried this before, but it should be possible to instruct HornetQ using an MBeanServer bean to use Mule's JMX server.
I'm can't find instruction for integration websphere mq 6 + weblogic 12 c by websphere native protocol (no jms!). It possible? Goal - deploy mdb in weblogic for getting message from websphere mq queue.
and response.
Please help with link or instruction.
Alex
I understand that the option of using WebLogic's Foreign JMS provider configuration is not available to you as you want to NOT use the JMS API, but MQ's specific API, correct?
If that is the case you could always try to write some MQ Client code using the MQ API, as you would for a stand-alone application, and then deploy it inside WebLogic, although I'm not sure whether that would give you any real benefit.
One thing I am pretty sure you will NOT be able to do is write a Message-Driven Bean which connects to an MQ Series queue using the MQ API. MDBs are a Java EE concept and they are meant to connect to JMS providers.
We have more than 5 corporate applications running on different servers with technologies like spring, struts communication between these application is point to point. We are planning to migrate this to ESB using Mule.
I didnt quite understand how mule works i have few doubts,
Mule is running in a different server do i need to deploy all my 5 aplications into the mule server.
I have spring application delployed on a tomcat server how this application is going to receive messages through mule or what are the configuration changes i need to do in my server or mule server.
Any advice or tutorials.
You need not deploy all you 5 applications in the Mule Server.
You said that all your application are currently point to point (which means that all are talking/communicating now through http protocol), similarly you can also use mule's http endpoints to communicate with all the 5 applications.
I.e. the spring application talking to another spring application can be modified to Spring application talking to Mule and Mule in turn talking to another Spring application .
You must learn the basics from the Documentation
http://www.mulesoft.org/documentation/display/current/Mule+Fundamentals --> browse through the navigation on the lefthand side.
Mule is an integration tool. you no need to change any of your existing applications. All you need is to develop an mule application which can do the mediation/orchestration.
For connecting with your spring application you no need to change any configuration you need to use http:outbound connector inside your mule flow
Just go through http://www.mulesoft.org/documentation/display/current/HTTP+Transport+Reference
So mule is based on SOA principle, so your 5 corporate service need not to be their in a single system. so if you want to consume the service/functionality of any of your 5 application, expose those service as web service, cloud be soap or rest. And you can call those service inside your mule. so in this case you have to create only 5 connection and where ever required you can refer to those connection inside mule configuration file.
#saravanan shanmugavel you need to use Mule ESB to orchestrate the communication between these application...ESB came into the picture to remove your point to point communication...you can create a proxy service for each of your service and one flow which will orchestrate communication between all...
All you need to do is change the application that is configurable according to mule server.
Please refer below link that will be helpful for understanding of mule that helps you better orchestrate communication between all.
https://docs.mulesoft.com/
JBoss(4.0.x) has many useful MBeans (org.apache.commons.modeler.*) that are visible in:
/jmx-console
But i cannot see these beans listed in JConsole (MBeans tab).
Are these beans not exposed to outside world?
JBoss 4.x has its own internal MBean server, separate from the default JVM one (JBoss AS 4.x pre-dates Java 5 and its MBean server, so needed its own).
I believe that in JBoss AS 5.x you can tell it to use the JVM's MBean server, but I don't think JBoss AS 4.x provides that option.
Are these beans not exposed to outside world?
Yes they are - JBoss AS's internal MBean server is just as exposed as the JVM's one, it's just exposed differently. JConsole talks to the JVM's MBean server, you need different tools to talk to the JBoss AS one.
P.S. JBoss AS 4.0 is eye-poppingly old (2004? 2005?). You really should update it.