WSO2: Greg and ESB with shared registry issue - wso2

I follow the guide Governance Partition in a Remote Registry found in WSO2 Documentaton. It seems to work fine but I am facing a strange problem. Let me explain my setup first.
Governance registry instalation
Installed GREG 4.5.3
Set the offset to 1 in order to GREG console mgmt runs on port 9444 (carbon.xml)
Create mysql database "wso2greg_reg" (for local/config/governance registry)
Updated datasource WSO2_CARBON_DB to point to wso2greg_reg database (master-datasources.xml)
Enabled clustering (axis2.xml)
Run GREG server with -Dsetup option in order to create all tables
Enterprise Service Bus instalation
Installed ESB 4.6.0
Set the offset to 2 in order to ESB console mgmt runs on port 9445 (carbon.xml)
Create mysql database "wso2esb_reg" (for local/config registry)
Updated datasource WSO2_CARBON_DB to point to wso2esb_reg database (master-datasources.xml)
Added datasource WSO2_GREG_DB to point to wso2greg_reg database (master-datasources.xml)
Enabled clustering (axis2.xml)
Set registry.xml to mount governance registry using wso2greg_reg database
Run ESB server with -Dsetup option in order to create all tables
My problem is happening when I start the two servers, dependening on which was the first server started I have diferent problems on the console managmenet of the secondly started server.
First case:
I start GREG first and ESB in second. When navigating to ESB Console MGMT, I am unable to add a new Pass Through Proxy, the respetive form is not showing and exceptions are logged to the ESB logs (see logs).
Second case:
I start ESB first and GREG in second. When navigating to GREG Console MGMT, the metadata menu is empty and exceptions are loged to the GREG logs (see logs)
Can someone point me to what I am doing wrong?

You need to create only one mysql database. It is this database that is used in the master-datasources.xml config for both G-Reg and ESB instances. What happens is, the mysql database is used as the central database.
Pls try this out and check if you still encounter the issues mentioned.
Cheers,
Gillian

Related

WSO2 Enterprise Integrator Database migrate

I'm using WSO2 EI 6.5.0 (latest release),
I'm wondering that Where can i find WSO2 database schema, stores all of things,
Those log files, written on Management console is saved in Database right ?
I am using Oracle DB (PL\SQL)..
I found oracle.sql from dbscripts folder - %E_HOME%,
How to connect WSO2's default database in PLSQL ?
Regards
By default wsoesb use h2 database. You can overwrite default database using oracle. There is documentation how to configure datasource, and there is, i am not sure something like carbon.xml where configure default datasource.
No, the logs are persisted in the files in ESB_HOME/repository/logs folder.
As #srimar mentioned, the default database is embedded H2. You can follow this doc to browse the embedded H2.
But WSO2 didn't recommend the embedded H2 database in the production
To configure the Oracle database you can follow this doc

WSO2 IS 5.2.0 Admin SOAP Services response time compared to WSO2 IS 5.0.0

I recently updated my environment from WSO2 IS 5.0.0 to WSO2 IS 5.2.0. My environment consists of one machine deployed on EC2 AWS instance. I am using MySQL(not the default H2 database). The machine on which the IS is deployed is Windows Server 2012 R2.
I also have a solution which wraps the IS Admin Soap services and allows me to automate some of the processes like:
-- Service Provider creation and configuration
-- User creation and configuration
-- Tenant creation and configuration
After upgrading to WSO2 IS 5.2.0 I started experiencing delays in the responses of the admin SOAP Services. Since I am using AWS I double checked whether I am using the most appropriate region to have the IS machine. Indeed it was - I am using the Frankfurt region.
I decided to do a simple test to see whether there is delay and if so how it affect my applications. So I created a simple Console Application which was hosted on my local machine and configured the Service References first against my new DEV IS 5.2.0 machine(Frankfurt region). For my test purposes I am using RemoteUserStoreManagerService?wsdl and I am trying to create a user. Ran the test several times and it seems that it takes about 6-7 seconds to create user.
Then I used the exact same conditions in order to run the test against DEV IS 5.0.0 machine which is also hosted in the same region (Frankfurt) and is using the exact same machine configuration (t2.large). Once again the Console Application was hosted on my local machine. The result from the second test was - 1 second to create the user using the very same admin SOAP service and the exact same logic in the Console Application under the same conditions the first test was executed.
Please find below image that displays some of the test results:
https://www.dropbox.com/s/h6rrhnczrutmmxw/IS5.2%20vs%20IS%205.0%20SOAP%20Service.png?dl=0
Is this a known behavior, or some sort of configuration should be applied to avoid such delays from the admin SOAP services?
Thanks in advance.
It turned out to be a configuration issue. In the following file:
"[wso2is-5.2.0_HOME]\repository\conf\identity\identity.xml"
There is a section named "EventListeners" and in there the following listener:
<EventListener type="org.wso2.carbon.user.core.listener.UserOperationEventListener" name="org.wso2.carbon.identity.mgt.IdentityMgtEventListener" orderId="50" enable="true"/>
Once I disabled this listener, all my issues regarding the delays in the responses of the SOAP admin services disappeared.
I did basic search to see what is the purpose of this listener and was able ti find the following:
http://pushpalankajaya.blogspot.bg/2016/02/account-deactivation-with-wso2-identity.html

WSO2 Identity Server 5.1.0 undocumented databases WSO2METRICS_DB and jpadb

A standard installation of Identity Server 5.1.0 creates beside the known WSO2CARBON_DB database two other h2 databases: "WSO2METRICS_DB" and "jpadb".
Unfortunately we couldn't find any documentation on this databases. Could someone please provide us with an pointer to the docs or give us a hint how to answer the following questions:
Are these two databases required? For what are they used?
If you configure WSO2 IS against a MySQL database, do I need to create these databases in MySQL as well?
Do I need to backup these databases?
In case of an upgrade of IS 5.0.0 to 5.1.0. How do I handle the two databases?
If you are migrating WSO2 Identity Server 5.0.0 to 5.1.0, you can refer the official documentation [1].
Metrics is a new feature added to Identity Server with 5.1.0 version. It has a separate database and the datasource is defined in repository/conf/datasources/metrics-datasources.xml file. The metrics feature is by default enabled in the config file repository/conf/metrics.xml file. With this feature, you can view JVM metrics by going to Configure -> Metrics -> JVM Metrics feature in the IS management console. All the metrics related data is stored in this new database.
For the metrics database, the database script is located in IS_HOME/dbscripts/metrics directory and there you can find the tables related to this feature which are created in the metrics database.
If you don't wish to use this feature, you may disable it from the metrics.xml file in conf.
The other jpadb is for the workflow feature introduced with IS 5.1.0. You can find documentation in [2]. So in a migration, these should be created separately and you don't need backup as these are new databases.
For your existing database in IS 5.0.0, there are some schema changes for existing tables. You can find DB migration scripts in [1].
[1] https://docs.wso2.com/display/IS510/Upgrading+from+a+Previous+Release#UpgradingfromaPreviousRelease-Upgradingthedatabase
[2] http://wso2.com/library/articles/2015/09/article-wso2-identity-server-5.1.0-workflow-feature-and-use-cases/
This jpabd is used by human task feature to store the task related information.
Identity server ships BPEL and HumanTask features and jpabd is part of that.
WSO2_METRICS_DB is used for WSO2 Carbon Metrics. https://docs.wso2.com/display/ML100/JVM+Metrics

Error occured while getting API in WSO2 APIM with BAM

I'm new to WSO2 products and I was trying to set up the API statistics by configuring APIM with BAM as said in this documentation for publishing the stats https://docs.wso2.com/display/AM170/Publishing+API+Runtime+Statistics#PublishingAPIRuntimeStatistics-point3.
However every time I try to configure the statistics, start BAM, and re-start APIM I always get an error on the APIM console "Error occured while getting API's".
What does this mean?
Does it mean I have to configure first APIM and BAM before I can make an API and check it's statistics?
I don't get it why following the manual results into something like an error. Is there something wrong with my configuration?
here are few ways to debug whats going wrong. How API-M and BAM integration works is that
API -> publish stats to BAM
BAM stores the stats in Cassandra
BAM uses Hive scripts to analyse the data and write the results to a RDBMS mentioned in master-datasources.xml
I would recommend you to check the number 2. by checking if stats are published to BAM. You can do this by login into the management console of BAM and going to the Analytic section and adding the following script
select * from APIRequestData;
Execute this script and see if any data is returned. If no data is returned then data is not correctly published from API-M to BAM. If data is available here then there is an issue in reading the data from RDBMS to API-M.
I recommend you check the master-datasources.xml file which you edited during configuration. There may be an issue there, if the API Manager cannot connect to its' own database. The datasources given in step 2 of the guide you used are in addition to the existing datasources. If this isn't it, then please provide a stack dump or more detailed error messages. Cheers.

WSO2 ESB clustering - sharing registry

I have tried to implement shared registry between clustered environment ESB 4.6.0 using GREG 4.5.3 following the guidance provided in provided in the documentation.
When I use the h2 db for currentDBConfig and the mysql database for mounted registry, WSO2 workers displays the following error when Deployment Synchronizer is automatically invoked:
Error while updating artifacts in the file system from the registry {org.wso2.carbon.deployment.synchronizer.registry.RegistryBasedArtifactRepository}
org.wso2.carbon.registry.synchronization.SynchronizationException: message code: ERROR_IN_READING_STREAM_TO_CREATE_META_FILE
When pointing currentDBConfig to the mysql database, the deployment synchronizer works ok and replicates configuration as expected, but according to the documentation it is not good practice.
How does the Deployment Synchronizer utilize the registry to update artifacts?
I have noticed that the User database uses by default the h2 database. Should it not be re-pointed to the shared governance registry database instead?
Thanks. Guillaume