MobileFirst Operational Analytics v7.1 startup error - ibm-mobilefirst

I am facing a problem when accessing MobileFirst Operational Analytics console.
I've changed the classloader order as specified by this link;
I did not do any changes for master node and shards configuration, I just leave it as default.
This error happens after starting the application and on the browser is shown just loading image.
My MobileFirst enviroment is:
IBM MobileFirst Platform Foundation v7.1 (fix: IF201509071904);
IBM WebSphere Application Server Network Deployment v8.5.5.6
Linux Redhat 6.6 (vSphere)
[16/09/15 21:50:37:580 BRT] 000000a2 IndexManager E MSAN217E: Error creating Elasticsearch mappings
java.lang.NullPointerException
at com.ibm.mobile.analytics.sdk.Utilities.loadEventTypesMappingFiles(Utilities.java:115)
at com.ibm.mobile.analytics.server.node.elasticsearch.IndexManager.addMappings(IndexManager.java:168)
at com.ibm.mobile.analytics.server.node.elasticsearch.IndexManager.initializeIndex(IndexManager.java:143)
at com.ibm.mobile.analytics.server.node.elasticsearch.NodeManager.initializeDefaultNode(NodeManager.java:100)
at com.ibm.mobile.analytics.server.node.elasticsearch.NodeManager.getClient(NodeManager.java:134)
at com.ibm.mobile.analytics.server.rest.elasticsearch.ESUtility.getDefaultTenant(ESUtility.java:681)
at com.ibm.mobile.analytics.server.rest.IndexManagerResource.getIndices(IndexManagerResource.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
Could anyone please help me on this issue? Thanks.

From initial code analysis by the MobileFirst development team this may be due to a regression.
As there is no local workaround, the suggestion is to open a PMR (customer support ticket) with a link to this question, to have it further investigated and provide a code fix if deemed needed.

Related

IBM MobileFirst Platform v8.0 - Operational Analytics multi-tenancy

From an existing WL v6.2 infrastructure I used to send analytics data from different runtimes to a single Operational Analytics server, adding a tenant parameter in order to treat them separately.
I'm trying to configure in the same way a new MFP v8.0 infrastructure, but I can't get it to work.
Searching the InfoCenter I find documentation about multi-tenancy only up to MFP v7.1, but can't see anything on latest MFP v8.0.
Is multi-tenancy still supported in MFP v8 ?
I think yes, because I see that the analytics server still has an analytics/DEFAULT_Tenant jndi entry.
However I don't know how to compose the mfp.analytics.url jndi entry in the MFP runtime server in order to correctly pass the tenant info to the target analytics server.
I tried something like
http://<opan-host>:<opan-port>/analytics-service/rest?tenant=MFPSVIL
but it doesn't seem to work.
When I restart the runtime war, in the access log of the analytics web server I see an invalid request coming in e producing an http405 error:
[03/Oct/2017:09:59:42 +0200] "POST /analytics-service/rest?tenant=MFPSVIL/v3 HTTP/1.1" 405 -
What am I doing wrong ?
What is the correct syntax for the mfp.analytics.url entry ?
If there is also any doc/wiki/tutorial that I have missed, please let me know.
Any help would be really appreciated.
Many thanks in advance.
Ciao, Stefano.
Unfortunately, Multi-tenancy is not supported with MFP Analytics 8.0.
Documentation needs to be updated. That is the reason no where in the documentation support was claimed or the steps for enabling Multi-Tenancy exists in 8.0

Watson Java SDK and OkHttp memory leak

I've created a POC for the Watson TTS service in Eclipse using the Java SDK 3.3.0. The app server is Tomcat v8.0 running locally through Eclipse on a Win10 PC. Everything works fine, i.e., it is able to retrieve an audio stream, but when I stop Tomcat I'm seeing warnings about memory leaks. Here are two of the messages:
The web application [testapp] appears to have started a thread named [OkHttp ConnectionPool] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:461)
okhttp3.ConnectionPool$1.run(ConnectionPool.java:66)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745)
There is a similar message for [Okio Watchdog].
I've looked through the SDK and can't find anything about exiting the TextToSpeech connection gracefully. Is this cause for concern? If I add this service to the production website it will be running in a Sun Solaris 10 environment also with Tomcat8.
After some investigations, I realized that those warnings are generated because the IBM Watson Java SDK uses OkHttp, and it creates asynchronous threads to handle the connection pool and the different request.
There are good reasons of why this is the way it is and they also suggest how to reuse the OkHttpClient to create fewer threads. I'm working on that as part of #686.
If you want to know more take a look at this issue in the OkHttp repository.
I'm about to release a new version of the Java SDK (v3.8.1) which reuses the OkHttpClient instance and therefore creates fewer threads.

How can I trace Operational Analytics in MobileFirst Platform 6.3 to determine why data is being lost?

I'm working in a scenario where we are trying to get Operational Analytics working within an MFP 6.3 environment. There is a MobileFirst client application (hybrid, if it matters), a MFP 6.3 server, and an Operational Analytics server (the system is for dev/test only, so is lightly loaded, and no uptime/performance concerns exist).
Currently, we are seeing intermittent problems, where data sometimes appears in the Operational Analytics console on adapter invocations etc., and then for some periods (sometimes days) go past with no data showing up.
How can we trace or log the behaviour of the Operational Analytics engine? As I understand it, there is a queueing mechanism on the MFP 6.3 server (currently wl.analytics.queue=1 and wl.analytics.queue.size=0) for forwarding data from the client to the OA server. Is there a way to see what messages are put or got from this queue?
This environment uses WAS ND.
From an IBM engineer:
IBM MobileFirst Platform 6.3 does not provide traceability options in
the MFP Operational Analytics component. This was greatly improved in
MFP 7.0 in the log output from the various analytics components,
including the queues and sender embedded in MFP server and the
receiver, processors, and storage in the Analytics server, and more is
planned for the future.
If deemed required in MFP 6.3 consider opening a PMR (support ticket). Or upgrade to MFP 7.0 if possible.

Worklight + WebSphere eXtreme Scale

I tried the integration of these products based on this article and I hit the same problem already documented in the article.
"invocation of javascript function 'getRSSFeeds' has failed: Could not initialize class com.ibm.websphere.objectgrid.ObjectGridManagerFactory
FWLSE0101E: Caused by: [project ExtremeScaleInWorklight]java.lang.NoClassDefFoundError: Could not initialize class com.ibm.websphere.objectgrid.ObjectGridManagerFactory"
It seems that it is caused by a Java class collision of log4j.
My solution was to create a separate Liberty server and install the WXS client for Liberty. This solved the problem, but then I cannot use the WL Development Server anymore which turns the development less efficient.
What is the best way to develop this kind of solution?
I have seen this integration of products on several slides, but I can't find an official guide on how to achieve this. Is there any?
Have You tries to get the IBM WebSphere eXtremeSCale Liberty profile developer tools 8.6 also installed in your WL Development Server ?
SO WXS has two components Client ( libraries) and Serer side components. They can be housed in the same JVM -- for tests, in production this does not really make sense. Serer side hosts storing of objects and enforcing the 'grid management' policies that you may employ using the xml confg files.
perhaps you can use IBM WebSphere eXtremeSCale Liberty profile developer tools 8.6 also installed in your WL Development Server and include then in the classpath.

WSO2 support on IBM Power system

Is wso2 platform supported on AIX or other operating systems on Power systems?
This particulary applies to the support of the IBM JDK. I'm getting different errors which seem to be targeted at the IBM JDK. Is the IBM JDK supported?
Thanks,
There are still errors i'm getting. Latest one is in BPS 2.1.2 :
[2012-05-01 10:14:27,521] INFO - Database - Using DAO Connection
Factory class org.apache.ode.dao.jpa.BPELDAOConnectionFactoryImpl.
Exception in thread "Attachment 33002"
java.lang.UnsupportedOperationException: cannot get the capability,
performing dispose of the retransforming environment
at com.ibm.tools.attach.javaSE.Attachment.loadAgentLibraryImpl(Native
Method)
at com.ibm.tools.attach.javaSE.Attachment.loadAgentLibrary(Attachment.java:252)
at com.ibm.tools.attach.javaSE.Attachment.parseLoadAgent(Attachment.java:230)
at com.ibm.tools.attach.javaSE.Attachment.doCommand(Attachment.java:140)
at com.ibm.tools.attach.javaSE.Attachment.run(Attachment.java:101)
And another post about esb with the thrift connection also gives errors on security implementation differences in oracle/ibm
WSO2 platform is tested on AIX. And also supports and tested with IBM jdk.