WSO2 multi-tenancy with Apache ActiveMQ - wso2

Our proposed deployment for WSO2 is to have a single WSO2 instance(JVM) and support multiple tenants within it. This has worked cleanly for us. Now, we need to extend this model to Apache ActiveMQ also.
i.e. we want tenant level isolation with Apache ActiveMQ also. In other words, the queue meant for tenant 1 should not be accessed by other tenants. In this respect, I had a couple of questions
Is there a way to support multi-tenants within a single Apache ActiveMQ
installation? If so, how do we align a WSO2 tenant with the
corresponding tenant in Apache ActiveMQ ?
If the above option is not available, then we are okay to have a separate Apache ActiveMQ for each tenant. In this case, how do we configure multiple Apache ActiveMQs with a single WSO2 installation ?
Any other pointers are truly appreciated !
Thanks

This is possible with Virtual hosts [1] configured on Apache ActiveMQ.
Each virtual host is isolated, there by supporting multi-tenant like behavior.
At the moment it is not possible to configure multiple Apache ActiveMQ's or Multiple virtual hosts with a single WSO2 Server instance.
[1] https://activemq.apache.org/apollo/documentation/user-manual.html#Virtual_Hosts

Related

how to run wso2 esb and api manager in one jvm

can I have any way to merge esb (wso2 enterprise service bus) and api manager to run in one Carbon app?
I want to use different wso2 products, like esb and api manager, identification server, business rule server.
But I don't want to run them in different carbon application. This needs lots of resources.
I know if I want to merge them, I must let them in same carbon version.
Do you want to run all products in a single carbon server? If so, you need to install API Manager feature in wso2esb.

How to prevent a web app from calling System.exit() in WSO2?

WSO2 folks,
I'm looking at WSO2 Application Server, and I created a web app to invoke System.exit(), which brings down the whole app server. I'm asking because the apps from multiple tenants could be running on the same Application Server, and we need to prevent a malicous tenant from killing the whole JVM.
My first thought was to use a SecurityManager to restrict the access, but I'm not sure where should I set the SecurityManager, and how should I code the SecurityManager to ensure a secure app server.
Is SecurityManager the correct approach, or is there some other way to accomplish my requirement?
It has been protected using Java Security Manager and system is configured with policies ,which do not allow such calls.

WSO2 ESB and GReg on same Carbon instance

I have installed WSO2 AS, after I have installed GReg and ESB by Feature Install. It was OK.
But now I would like to know how to I have to configure GReg and ESB using same WSO2 Application Server.
For example, I would like to configure ESB and GReg following pattern #2 or pattern #3 of this blog post but considering that ESB and GReg were installed in same WSO2 AS instance.
Is that a correct escenary ? or I Have to install allways in separated AS ?
Regards!
Oscar
These patterns are used when you need to share registry spaces across multiple server instances. A common config registry space is used to share configuration details across multiple instances of the same product. A common governance registry space is used to share metadata across the multiple products in a platform.
In the setup you have described,since ESB and AS products are installed in the same server, there is no need for sharing the registry space.
Sharing the registry space would be required only if these products are run as separate server instances.
Is there any particular reason/requirement you have for the setup described?
Regards,
Gillian

How do you configure WS02 to use different endpoints URIs in different environments?

We are evaluating multiple ESB products currently (Mule, Fuse and WSO2), and one of our key requirements is to easily migrate services between multiple environments. I can see how this can be done in WSO2 with g-reg for the most part, but am struggling to see how we would parametrise the endpoint uris and maintain them separately in each environment? (This seems fairly trivial in Mule and Fuse).
The preferred way is:
Create/save ALL endpoints as registry resource (either using management console or Developer Studio)
Since the endpoints are saved in the registry, now the ESB configuration is totally independent of the environment. (We can create a Carbon Application out of this, which is basically can be deployed in any environment)
So, if you need to move the configuration from dev->qa, you can use the same .car file created

Clustered Web Services

Is possible to do a clustered web service (with JAX-WS), that each node receives automatically the resources? May be with EJBs? If possible, how to do it?
Thanks
We have a 2-node cluster on JBoss 5.1. On these node is deployed a WS via JAX-WS (JbossWS).
In JBoss is very simple to expose an EJB3 class and methods inside as Web Services. You only need to mark with annotations classes and methods you want to expose. All work without any deployment file. You can deploy the JAR file directly! :-)
Please refer to this page for other explanation: JBossWS
I assure you: it works! We have it in production environment...