MobileFirst: can multiple Servers use same database - ibm-mobilefirst

One of my client has installed two MobileFirst servers on separate machines but have kept same databases for both to use. For example, databases are WLAdmin, WrkLght, WLReports, WLAppCenter and both servers are pointing to them.
It works well in past but today we seen Runtime synchronization failed exception and console was showing.
FWLSE3000E: A server error was detected.
So is this okay to have same database for multiple servers to use ?
Our Environment:
MobileFirst 6.3
WAS Liberty Core v8.5.5.4
Oracle 11
On both servers same application is deployed and there is no clustering. Only a load balancer is configured to just distribute the traffic.

Since Worklight/MobileFirst 6.2, a configuration with two "independent" servers using a shared administration data base is called a farm of servers and requires some additionally configuration. It is no longer enough that both servers share the data base, it is also needed that both servers can communicate to each other through JMX.
The situation in MobileFirst 6.3 for the farm of servers is in my personal opinion not optimally user-friendly, as some XML configuration file is needed to be shared among all servers (this is often error-prone), hence I recommend to upgrade to MobileFirst 7.0 where this XML configuration file is superfluous and the configuration is much easier.
The documentation for configuring a farm of servers can be found here:
MobileFirst 6.2: Server Farm in 6.2
MobileFirst 6.3: Server Farm in 6.3
MobileFirst 7.0: Server Farm in 7.0 (strongly recommended)
A server farm can be configured with Websphere Liberty Profile or Full Profile, or with Apache Tomcat.
An alternative to a server farm is using IBM Websphere Application Server Network Deployment (WAS ND) with clusters (see WAS ND configuration for MobileFirst 6,3). This works only with Websphere Full Profile, not with Websphere Liberty Profile. In this case, you do not really have two independent servers since they must both belong to the same cluster and are controlled by the same Websphere Deployment Manager. WAS ND handles all details of JMX communication automatically for you.
Final note: what I say above holds for the MobileFirst Server and Runtime. For IBM Application Center, the situation is slightly different since it does not require any JMX. Having two independent servers with Application Center sharing the same data base should work without problems.

Related

Configuring Apache - Web server with WebSphere Base Edition - App server? WebSphere base edition cluster feature?

Architecture :-1
End user -> 1 Load balancer -> 2 web servers ( Apache - RHEL 7.5 ) -> 2 App servers ( WebSphere 8.5.5.11 )
I know that more than 5 nodes cluster can be configure with WAS ND and heard about Cluster can be configured in WAS Base edition with 5 nodes. Our requirement is that we would like to configure cluster with 2 nodes in WAS base edition,is this possible with WAS Base edition? Is there any license issue on WAS Base edition with 2 node ? Am I right? kindly clarify cluster feature in WAS Base editon.
How to configure Cluster/HA/Active-Active with two nodes in WebSphere application server. If I configure Active/active cluster in WAS App then Load balancer is required infront of the web servers?
How to configure web server ( Apache ) with App server ( Websphere )
Is it required to configure DMGR when I configure Cluster with two nodes on WebSphere Base edition? Someone told me that DMGR cannot create in WebSphere base editon?
A "cluster" in the Base edition is not a cluster at all to the appserver, it is just a bunch of standalone servers with the same config and applications with a HTTP proxy that load balances between them.
If you use the WAS WebServer Plugin to achieve it, you generate a plugin-cfg.xml on each system then use the pluginMerge tool in the bin/ directory on any appserver to merge them into one.
No dmgr is required when using Base in this way.

MobileFirst development server - analytics REST services

I'm running the development server under MobileFirst Studio 7.0 and I can see the analytics console with data reflecting my application's activities.
Previously in my production servers I have been able to interrogate the status of the Analytics engine by using REST requests such as
http://localhost:9500/_cluster/health?pretty=true
The port 9500 being configurable by JNDI entry
<jndiEntry jndiName="analytics/httpport"
value="9501" />
this value defaults to 9500, while the transport port defaults to 9600.
In my development server I don't seem to be able to access these REST services Looking at the ports I can see that 9600 is active but 9500 is not, and the JNDI entry seems to have no effect.
I'm only seeking to do this for educational purposes, but am I missing something here? Is the REST capability expected to work in the development server? Is there some additional config I need to do?
In MobileFirst Platform Foundation 7.0 this port was blocked for security reasons. However, some customers found it useful using that port so in a coming iFix there will be an option to override the security setting allowing you to view your analytics data on that port.

IBM Worklight: publicWorkLightHostname for Active/Active Webservers

Environment:
IBM HTTP Server 8.5 - http:81/https:91
Liberty Profile 8.5.5.1
IBM Worklight 6.2 - http:9081/https:9091
Setup has Load balancer then two IHS[Active/Active] & two Worklight Servers.
Load Balancer routes the request from the client to both IHS in Round Robin.
Each IHS points to both the Worklight servers.
In Worklight.properties,
publicWorkLightHostname=localhost
publicWorkLightProtocol=http
publicWorkLightPort=10080
What should I fill in each .war file deployment in worklight server. Load Balancer IP, Port & Protocol?
I am confused with the Active/Active Webserver's.
See the following:
http://ibmmobiletipsntricks.com/2014/05/26/where-do-i-specify-the-hostname-of-my-worklight-server/
IBM Worklight 6.1 - When are these properties used? publicWorkLightHostname/Protocol/Port
The publicWorkLightHostname, publicWorkLightProtocol, and publicWorkLightPort properties in the worklight.properties file determine:
Where the Mobile web and desktop browser apps should connect back to.
How the Worklight Application Center (if used) will form RESTful URLs for its own internal use.
In all cases, these hostnames should point to the externally-resolvable address of the Worklight server (in front of any load-balancers, firewalls, proxies, etc.).

How to solve management service not starting up in Worklight 6.2

I have installed Worklight 6.2 on Linux, using Liberty 8.5.5 and DB2 10.5. Created the DB2 databases for WRKLGHT and WLREPORT. Have executed the Server Configuration Tool and successfully created a Worklight Server configuration (did not have any errors in the Console view when running the Ant tasks, tables were created successfully in the database, and configuration shows deployed status in the SCT). Created a runtime environment in the SCT, also seemed to succeed (no errors in Console view, tables created/updated, runtime environment shows deployed in the SCT). Stopped and restarted the Liberty server.
Can hit Worklight admin at (/worklightconsole) and log in successfully using my demo user, however it then indicates there are no runtime environments. When trying to access runtime environment at /worklight/console (which should be the correct URL given how I created the runtime config in SCT using my Worklight project WAR), I get various errors: first "Service unavailable since initialization is not yet complete." then after retrying for about a minute or two I get "javax.servlet.ServletException: java.lang.RuntimeException: Timeout while waiting for the management service to start up at com.worklight.core.auth.impl.AuthenticationFilter.isWaitingForInitialization(AuthenticationFilter.java:561)".
Seems the management service is not starting up successfully. Upon reviewing the messages.log I see the following error precede it: "FWLSE0242E: Failed to synchronize application runtime information. The servlet initialization failed and the servlet will deny serve. The most common reason is a failure in JMX communication with the ''worklightadmin'' service. You need to restart the web application after fixing the problem. [project worklight]" and this creates an FFDC log.
I know this is a lot of information but trying to be complete. Anything I should check to fix the JMX communication issue and get the management service starting?
Thank you for the replies back. Turns out there is an issue with Liberty (I was on 8.5.5.0) and the IBM JDK I was using (1.7_64). Swapped out to the Oracle JRE (1.7.0_60-b19), pointed Liberty to use it, and the problem was solved. I am pursuing a fix with the Liberty team through IBM Support for this issue.
I cannot give a unique solution, but I can explain the situation and this may lead to a solution.
The runtime servlet initialization tries to contact the Worklight Admin service. The Worklight Admin service is a web application that must be running when the runtime starts. The runtime was not able to find the Worklight Admin service. It waited a while, in case that the Worklight Admin service is just starting up, but then gave up due to a timeout because within a given time, it could not find the Worklight Admin service.
Possible reasons:
the web server is not at all configured to run the Worklight Admin service. In your case, this seems not the problem, since you can access the Worklight Console. You should also see in the log file whether the Worklight Admin service did start.
the worklightadmin service might never start up ... this could be a configuration problem, e.g. with the WLADMIN data base. This could also be detected from the server logs.
when the runtimes and the Worklight Admin service start up together, it might be that the Worklight Admin service simply takes too long to start. Let's say you have 100 webapps, and the runtime starts first and the Worklight Admin service starts last, it could be that the 98 other webapps take too much time to start. In that case, make your web server lighter ... run only Worklight on that webserver, nothing else.
the Worklight Admin service starts, but the runtime cannot communicate with it. This indicates that the JMX communication is misconfigured. Follow the documentation of the webserver how to configure JMX. For liberty, see http://www-01.ibm.com/support/knowledgecenter/SSD28V_8.5.5/com.ibm.websphere.wlp.core.doc/ae/twlp_admin_restconnector.html?cp=SSD28V_8.5.5%2F1-5-2-10-1&lang=en

weblogic AS: application deployed on a cluster with two managed servers

I'm on Weblogic AS 10.3.5, I have two managed servers pointed to a cluster, so I have two url, one for the first managed server, the other one for the second.
I will deploy my application on the cluster, so will I reach it on both the url? will the application deployed and running on both the servers?
How does it work? Can you give me some references, please?
Is it clear?
Thanks a lot!
First, you shouldn't be using WebLogic 10.3.5 anymore since it has reached the last stage of support called Sustained Support. Consider to upgrade at least to WebLogic 10.3.6.
Related to your question, I believe you are talking about a Web Application and how to access it. First you need to read about Load Balancing in a Cluster. For the web part (JSP and Servlets) basically you have to options: setup a Web Server (like Apache HTTP) to make use of the WebLogic Plug-in, that will then be connected to the WebLogic cluster. The other easier option is to simply use an LBR (load balance router hardware).
These are the "software" solutions you have for Load Balancing your web application in a clustered WebLogic:
WebLogic Server supports the following Web servers and associated
proxy plug-ins:
WebLogic Server with the HttpClusterServlet
Netscape Enterprise Server with the Netscape (proxy) plug-in
Apache with the Apache Server (proxy) plug-in
Microsoft Internet Information Server with the Microsoft-IIS (proxy) plug-in
You can read more about this options at the Configure Proxy Plug-ins documentation page for WebLogic 10.3.6.