WSO2 api manager 2.1.0 clustering - wso2

I am trying to setup WSO2 api manager(as windows service) with clustering, used steps at the end of the page found at this link.
https://docs.wso2.com/display/CLUSTER44x/Clustering+API+Manager+2.0.0
<clustering class="org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent"
enable="true">
I have 2 nodes in a load balancer, I have all 4 components(Publisher
,Store,Key Manager,Gateway) on both nodes. When setup individually, both nodes work.
However, when clustering is enabled, store does not replicate from one node to another. I have hosts file updated as needed. I tried making several changes to axis2.xml, api-manager.xml; some of these changes cause api manager to stop working altogether.
Does anyone have suggestions for a successful clustering setup? Is there something that is needed, is not mentioned in the steps mentioned at above link?

I think the documentation that you are following is not the relevant one. If you are clustering WSO2 API Manager 2.1.0 version please use API Manager 2.1.0 clustering docuemntation which is inside the API Manager product documentation itself.

Related

Duplicate API is getting created in WSO2 API Manager Publisher

I've published an API named as "DocumentAPI", after publishing I can find two API's with the name "DocumentAPI" in publisher. Can find only one API with name "DocumentAPI" in store. Tried deleting, recreating and republishing the API and also restarted my server.
Two gateways(internal(MZ) and external(DMZ)) are there in the current environment which means some the APIs are specific to internal and some are specific to external and some are published to both the gateways(cuurent problematic API is published to both the gateways)
There is no synchronize method setup between these two nodes.
We are on APIM-2.6.0
There is no duplicate entries in AM_API, REG_PATH tables with repect to problematic API. Only in publisher UI we are seeing two APIs with same name,version & conetxt and when I modify any one API the change immediately relfecting into other API as well. In store only one API it is showing and when I test this API through Postman subsequent calls are getting failed.
Note: Publishing in fully distributed environment.
Are you using APIM wum updated pack or vanilla pack? If it is wum, what is the wum level(AM_HOME/updates/wum)?
Did you try to recreate a new API instead of that "DocumentAPI" name (with a different name) and did you see the same issue for this when publishing to both GW nodes?
In APIM 2.6.0 we have seen a similar issue if we have created an API with uppercase (eg: AbcAPi) and published it. Then remove it and try to recreate the api with the same name but lowercase (eg: abcApi) and publish it. Then we can see two API in the publisher portal but not in Store UI. And AM Table has one record. But in the registry has two paths (as you have seen).
eg:
/_system/governance/apimgt/applicationdata/provider/admin/AbcAPi
/_system/governance/apimgt/applicationdata/provider/admin/abcApi
One path for that old api name and another path for the new API. Since currently, we have fixed this, and that fix is available in the latest wum updated pack of the APIM 2.6.0. Therefore did you notice such differences in both reg paths (select * from REG_PATH where REG_PATH_VALUE).
If yes, it has fixed in the latest wum of APIM 2.6.0. The reason here is when removing API, it remains some metadata of old API and when recreating registry keep both paths.
When creating an API in wso2 APIM, it doesn't allow to create two APIs with the same name, context and version (name, context and version should unique).
As per the provided mentioned details, we hope that both APIs in the publisher node has the same name, context and version.
In your distributed set up how many GWs are available(one or many)?
If has multiple GW nodes, are you using any deployment artefact syncronize method like NFS?
What is the APIM version
Are you noticing two records for the above API in the AM database(AM_API table)?

WSO2 API Manager Getting Start

This is regarding wso2 APM
Is there a getting started guide for those who wanted to start contributing to WSO2 API Manager.
Any feature request page where I can see community voted new features on which contribution is required ?
​
Thanks.
To get an understanding about the jaggery application structure in the API manager (The UI parts) you can read following tutorials
http://wso2.com/library/tutorials/2012/09/customizing-api-store-publisher-part1/
http://wso2.com/library/tutorials/2013/08/customizing-api-storepublisher-jaggery-applicationspart2/
this is the structure followed in api manager store, publisher and admin-dashboard jaggery application.
You can read http://wso2.com/library/tutorials/writing-custom-hostobject/ to see how the jaggery application is connected with the java code.
These will give you a basic understanding about the code base of the api manager.
Is there a getting started guide for those who wanted to start
contributing to WSO2 API Manager.
WSO2 API Manager is 100% open source API Management solution. You can find the component source code in github, component repo and product repo
Any feature request page where I can see community voted new features
on which contribution is required ? ​
You can find those information in the following mailing list
dev#wso2.org is a mailing list to discuss about all WSO2 products.

Removing components from wso2 api manager

WSO2 API manager has 4 components
API Gateway
API Publisher
API Store
API Key Manager Server
I would like to run each of these components on separate boxes. While doing so on box where I have API Publisher component I want to remove other 3 components from the api manager so on with other components. By this I would like to achieve that only 1 component exists at run time of each instance of wso2 api manger.
I would like to know how can we remove each of these components from wso2 api manager?
You can remove the relevant features from the product via Carbon Feature Management (Or you can add necessary features as well).
You can find more information regarding how to uninstall a particular feature here.
You can also find more information regarding feature management for WSO2 Carbon products here.
HTH,
Lasantha
To add to Lasantha's answer, this article describes how these 4 components can be deployed separately in a cluster with an ELB.
Installing High Level components is supported from API Manager 1.5.0 onwards. If you want to start API Manager as one of the components, that can be achieved by starting as a server profile. You can find more information here.

WSO2 Stratos Live Services / APIs

currently I´m evaluating WSO2 Stratos LIVE as a public PaaS. I did much research but there are still some questions:
1.) Does WSO2 Stratos Live offer a "multi-tenancy-api" to make Java web applications multi-tenant-aware (something like the Google App Engine Namespace API)?
2.) Is the cartridge-based architecture available (like in WSO2 Stratos 2)?
3.) Are there official API documentations / code samples for all the cloud services? I just found blog posts and webinars. But an official api documentation and code samples would be very great (for example how to unse Identity Server for authentication in Java web applications).
4.) Based on WSO2 API Manager deployment on Stratos, I assume that the API manager is not available as cloud-service?
5.) Do I have hosting options on Stratos Live (e.g. Java Version, the country / Data Center where my app will be hosted)?
6.) Does exist a logs-api to access application logs from my application?
7.) Are there apis for data handling (for example Map Reduce, execution of cron jobs, CDN)?
8.) Do I have a local test environment? I know that there are IDE plugins for an easy deployment. But is it possible to test my app with all WSO2 Stratos Live cloud services local on my machine without connecting to the real services?
I know this is a lot but it would be more than helpful if the WSO2 professionals would help me to answer those questions. As I said, I did much research but those 8 questions are still open.
Thanks a lot and best regards
Ben
See the answers in-line.
1.) Does WSO2 Stratos Live offer a "multi-tenancy-api" to make Java web applications multi-tenant-aware (something like the Google App Engine Namespace API)?
Yes. Your web app can be multi-tenanted.
http://www.youtube.com/watch?v=_lEwm6VzAmo&noredirect=1
http://www.slideshare.net/afkham_azeez/building-a-multitenanted-cloudnative-appserver
2.) Is the cartridge-based architecture available (like in WSO2 Stratos 2)?
Not yet. But our plan is to make Stratos2.0 as the foundation of StratosLive. This will be done after the GA release of Stratos2.0 (it is now in beta stage)
3.) Are there official API documentations / code samples for all the cloud services? I just found blog posts and webinars. But an official api documentation and code samples would be very great (for example how to unse Identity Server for authentication in Java web applications).
All the documents and samples available for WSO2 products are valid for StratosLive. Reason is, we have deployed the very same product in the cloud. We are in the process of filling the documentation gap with regards to StratosLive at the moment.
4.) Based on WSO2 API Manager deployment on Stratos, I assume that the API manager is not available as cloud-service?
Not yet. It will be available in the future.
5.) Do I have hosting options on Stratos Live (e.g. Java Version, the country / Data Center where my app will be hosted)?
No. StratosLive uses shared instances to achieve multi-tenantcy (not like some other PaaSes which uses a JVM per tenant). Therefore, hosting options are not available.
6.) Does exist a logs-api to access application logs from my application?
Yes. We allow the tenants to view system logs and application logs. Unfortunately the API for log viewing is not documented yet.
http://sparkletechthoughts.blogspot.com/2012/09/how-distributed-logging-works-in-wso2.html
7.) Are there apis for data handling (for example Map Reduce, execution of cron jobs, CDN)?
Map reduce related tasks can be handled using toolboxes which can be deployed in WSO2 BAM (monitor.stratoslive.wso2.com). Please check the WSO2 BAM2 documentation for more info.
8.) Do I have a local test environment? I know that there are IDE plugins for an easy deployment. But is it possible to test my app with all WSO2 Stratos Live cloud services local on my machine without connecting to the real services?
You can download and use the Stratos local setup which can be found at http://wso2.com/cloud/stratos

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