GithubHelp home page GithubHelp logo

decisionsdev / odm-ondocker Goto Github PK

View Code? Open in Web Editor NEW
50.0 11.0 40.0 359.49 MB

This repository allows to deploy an IBM Operational Decision Manager topology with Docker Compose

Home Page: https://odmdev.github.io/odm-ondocker/

License: Apache License 2.0

Shell 65.17% Java 20.45% Dockerfile 14.39%
java odm docker microservices docker-compose docker-image dockerfiles odmdev-docker rules-engine business-rules

odm-ondocker's Introduction

IBM-ODM-Docker

IBM Operational Decision Manager on Docker

Build and test GitHub last commit

GitHub release License

Deploy IBM Operational Decision Manager on Docker from Dev to Production

This repository centralizes the material to deploy IBM Operational Decision Manager in Docker. It includes Docker files and Docker compose descriptors. Docker files are used to build images of ODM runtimes. And docker-compose descriptor can be used to group this build, push to your repository and run your topology from Development to production.

IBM ODM is a decisioning platform to automate your business policies. Business rules are used at the heart of the platform to implement decision logic on a business vocabulary and run it as web decision services.

Flow

In addition to this repository about ODM on Docker, there is a dedicated repository to deploy ODM on Kubernetes and the IBM Operational Decision Manager for Developers docker image in dockerhub.

Deploying ODM Rules in the following environments

This documentations applies to Operational Decision Management Standard V8.12.x and to earlier versions up to v8.8.x.

References

Issues and contributions

For issues relating specifically to the Dockerfiles and scripts, please use the GitHub issue tracker. For more general issue relating to IBM Operational Decision Manager you can get help through the ODM community or, if you have production licenses for Operational Decision Manager, via the usual support channels. We welcome contributions following our guidelines.

License tracking with IBM License Service

Refer to the Add IBM License Metering annotations page to enable license tracking in IBM License Service.

License

Apache 2.0

Notice

© Copyright IBM Corporation 2023.

odm-ondocker's People

Contributors

adamcdavis avatar amelki avatar anthonyacremann avatar avi44522 avatar cleclerc75 avatar cmosbach avatar dependabot[bot] avatar fredibm avatar fredmerci avatar gaelcrova avatar isabellemurru avatar jeremy-pichon avatar julie-garrone avatar lgrateau avatar markwilkinson2 avatar mmouly avatar pylochou avatar rachel-orti avatar yafred avatar yiquanzhou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

odm-ondocker's Issues

Update the setting of variables so that it works whatever the current value is

It would be better to not rely on the existing value of a given variable to replace it.
=> Ensure that the current replacements work whatever the value is.

For example the following replacement will work whatever the value for com.ibm.rules.decisioncenter.setup.configuration-file is:
perl -i -p0e 's/(com.ibm.rules.decisioncenter.setup.configuration-file</param-name>.?)(.?)(</param-value>)/\1/config/decisioncenter-configuration.properties\3/s' /config/apps/decisioncenter.war/WEB-INF/web.xml

The following replacement only works if the value is false:
perl -i -p0e 's/(ForceDatabaseTableCreation</param-name>.*?)(false)(</param-value>)/\1true\3/s' /config/apps/DecisionRunner.war/WEB-INF/web.xml

Update to the new Liberty version

The Images are based on an old Liberty version. The goal of this task is to update the Dockerfile to rely on a more recent Liberty version

Create a new Docker image to host Rule Designer

The goal of this enhencement is to deliver a Docker image that allow a customer to install Rule Designer from their Docker images.
The concept of operation will be :
1- User download a compatible ODM Eclipse version
2- User Retrieve the URL from the container that host rd
3- User Add an install site with this URL.

Cleanup unused sh scritps

In decisionserverconsole / decisionserverruntime contain unused script cmd.sh.
Need to be removed.

Create a setup guide

Some feature needs manual configuration.

Create an entry in the readme to list the manual configuration.

Intermittent NoHttpResponseException when creating and running a test suite by API

Reproduced intermittently with the standard and standalone topologies on dev so far.

org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://xxxx:9060/decisioncenter/remoting/session?__dcsid=2ed102755c6b758f07f2f12037e0f97c]; nested exception is org.apache.http.NoHttpResponseException: xxxx:9060 failed to respond
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:143)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261)
at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:165)
at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
at org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor.executeHttpPost(HttpComponentsHttpInvokerRequestExecutor.java:354)
at org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor.doExecuteRequest(HttpComponentsHttpInvokerRequestExecutor.java:245)
at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:136)
at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:202)
at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:184)
at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:150)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy10.getElementDetailsForThisHandle(Unknown Source)
at ilog.rules.teamserver.model.impl.IlrAbstractSession.getElementDetails(IlrAbstractSession.java:1050)
at ilog.rules.teamserver.model.impl.IlrAbstractCachingSession.getElementDetails(IlrAbstractCachingSession.java:80)
at ilog.rules.teamserver.model.impl.IlrAbstractSession.getElementDetails(IlrAbstractSession.java:1037)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:508)
at ilog.rules.teamserver.client.IlrSessionInvocationHandler.invoke(IlrSessionInvocationHandler.java:43)
at com.sun.proxy.$Proxy11.getElementDetails(Unknown Source)
at com.ibm.odm.cloud.mat.tests.remoteconnection.RemoteConnectionBase.createAndRunTestSuite(RemoteConnectionBase.java:415)
at com.ibm.odm.cloud.mat.tests.remoteconnection.DecisionCenterTestSuiteTest.testCreateAndRunDecisionCenterTestSuite(DecisionCenterTestSuiteTest.java:27)

Rename and cleanup docker-compose yml files

The docker-compose yml files do not have the same naming conventions. We should name them either "docker-compose-(standard/standalone/cluster).yml" or odm-(standard/standalone/cluster).yml".

odm-cluster.yml and docker-compose-cluster.yml are duplicated?

Error "The security token was generated on another server using different keys"

This error occurs notably when we use two decision runner instances and we execute some requests with a given instance of CDIClient and not all the requests go to the same instance of decision runner. To prevent this error from occurring, we have to use the same ltpa.keys file in all the liberty server instances.

Enable security for Decision Runtime docker image

The Decision Server Runtime image is not secured by username/password which is a security hole if the endpoint is expose as public url.

The goal of this enhencment is to secured the end point by a username/password.

Connection failed for the Decision Runner when running a test suite from Decision Center

decisioncenter_1 | [WARNING ] [Report - 2017-08-21_03-32-29-645] nullilog.rules.teamserver.model.IlrTestingException: http://localhost:9070/DecisionRunner is not a valid Decision Runner URL. CDIHttpClient cannot be created.
decisioncenter_1 | Connect to localhost:9070 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
decisioncenter_1 | Connection refused (Connection refused)
decisioncenter_1 | at ilog.rules.teamserver.ejb.service.validation.IlrTestSuiteService.createDecisionRunnerClient(IlrTestSuiteService.java:557)
decisioncenter_1 | at ilog.rules.teamserver.ejb.service.validation.IlrTestSuiteService.asynchronousPrepare(IlrTestSuiteService.java:213)
decisioncenter_1 | at ilog.rules.teamserver.ejb.service.validation.PrepareArchiveThreadService.run(PrepareArchiveThreadService.java:57)
decisioncenter_1 | at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:66)
decisioncenter_1 | at com.google.common.util.concurrent.Callables$4.run(Callables.java:122)
decisioncenter_1 | at java.lang.Thread.run(Thread.java:785)
decisioncenter_1 | Caused by: java.lang.IllegalArgumentException: http://localhost:9070/DecisionRunner is not a valid Decision Runner URL. CDIHttpClient cannot be created.
decisioncenter_1 | at com.ibm.rules.cdi.client.CDIClientServiceFactory.createHTTPClient(CDIClientServiceFactory.java:125)
decisioncenter_1 | at com.ibm.rules.cdi.client.CDIClientServiceFactory.createHTTPClient(CDIClientServiceFactory.java:103)
decisioncenter_1 | at ilog.rules.teamserver.model.validation.ValidationHelper.createDecisionRunnerClient(ValidationHelper.java:75)
decisioncenter_1 | at ilog.rules.teamserver.ejb.service.validation.IlrTestSuiteService.createDecisionRunnerClient(IlrTestSuiteService.java:555)
decisioncenter_1 | ... 5 more
decisioncenter_1 | Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:9070 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
decisioncenter_1 | at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158)
decisioncenter_1 | at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
decisioncenter_1 | at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
decisioncenter_1 | at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
decisioncenter_1 | at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
decisioncenter_1 | at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
decisioncenter_1 | at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
decisioncenter_1 | at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
decisioncenter_1 | at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
decisioncenter_1 | at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
decisioncenter_1 | at com.ibm.rules.cdi.client.CDIClientServiceFactory.isDecisionRunner(CDIClientServiceFactory.java:147)
decisioncenter_1 | at com.ibm.rules.cdi.client.CDIClientServiceFactory.createHTTPClient(CDIClientServiceFactory.java:121)
decisioncenter_1 | ... 8 more
decisioncenter_1 | Caused by: java.net.ConnectException: Connection refused (Connection refused)
decisioncenter_1 | at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:380)
decisioncenter_1 | at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:236)
decisioncenter_1 | at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:218)
decisioncenter_1 | at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
decisioncenter_1 | at java.net.Socket.connect(Socket.java:666)
decisioncenter_1 | at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:74)
decisioncenter_1 | at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141)
decisioncenter_1 | ... 19 more
decisioncenter_1 |

Error "A user authenticated as anonymous has attempted to access a session owned by user:customRealm/resAdmin" with standard and cluster

You get the following error when using Retrieve HTDS Description File and then Show HTDS Options and when you get this error, you have to close the browser if you want to continue to use the RES console:

Exception thrown by application class 'javax.faces.webapp.FacesServlet.service:154'
javax.servlet.ServletException: SESN0008E: A user authenticated as anonymous has attempted to access a session owned by user:customRealm/resAdmin.
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:154)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1290)
at [internal classes]
at ilog.rules.res.console.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:76)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:207)
at [internal classes]
Caused by: com.ibm.websphere.servlet.session.UnauthorizedSessionRequestException: SESN0008E: A user authenticated as anonymous has attempted to access a session owned by user:customRealm/resAdmin.
at com.ibm.ws.webcontainer.session.impl.HttpSessionContextImpl.checkSecurity(HttpSessionContextImpl.java:751)
at [internal classes]
at org.apache.myfaces.context.servlet.SessionMap.getSession(SessionMap.java:75)
at org.apache.myfaces.context.servlet.SessionMap.getAttribute(SessionMap.java:46)
at org.apache.myfaces.context.servlet.AbstractAttributeMap.get(AbstractAttributeMap.java:91)
at org.apache.myfaces.portlet.PortletUtil.isPortletRequest(PortletUtil.java:64)
at org.apache.myfaces.lifecycle.RestoreViewExecutor.deriveViewId(RestoreViewExecutor.java:107)
at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:57)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
... 5 more

How to reproduce:
NB: The test was performed using Chrome. The error can be reproduced in the standard and cluster topologies.

  • In the RES console, click Explorer.
  • In the tree, select the miniloan ruleset.
  • On the ruleset view, click Retrieve HTDS Description File.
  • Select REST then click View. It opens a new tab next to the RES console tab in the browser.
  • Click on the RES console tab in the browser, then click Show HTDS Options. You get an unauthorized exception "A user authenticated as anonymous has attempted to access a session owned by user:customRealm/resAdmin" and when you get this exception, you cannot use the RES console anymore. You have to close the browser and load the RES console again.

Enhancement request

  • rename the repo in lowercase to be able to use the name in the build script

  • ability to git clone the repo directly in ODM_INSTALL instead of the .zip

    change the script to replace docker-compose by odm-ondocker

  • in docker-compose.yml add the image tag to name the docker image. Because by default, it creates dockercompose-decisioncenter.
    `version: '2'
    services:
    dbserver:
    build:
    context: ./
    dockerfile: ./derby-server-db/Dockerfile
    image: odm-dbserver:8.8.1.1
    ports:

    • 1527:1527
      environment:
    • SAMPLE=true

    decisionserverconsole:
    build:
    context: ../
    dockerfile: ./docker-compose/decisionserverconsole/Dockerfile
    image: odm-decisionserverconsole:8.8.1.1
    links:

    • dbserver
      depends_on:
    • dbserver
      volumes:
    • /var/run/docker.sock:/var/run/docker.sock
      ports:
    • 9080:9080
    • 1883:1883

    decisionrunner:
    build:
    context: ../
    dockerfile: ./docker-compose/decisionrunner/Dockerfile
    image: odm-decisionrunner:8.8.1.1
    links:

    • dbserver
      depends_on:
    • dbserver
    • decisionserverconsole
      volumes:
    • /var/run/docker.sock:/var/run/docker.sock
      ports:
    • 9070:9080

    decisioncenter:
    build:
    context: ../
    dockerfile: ./docker-compose/decisioncenter/Dockerfile
    image: odm-decisioncenter:8.8.1.1
    links:

    • dbserver
      depends_on:
    • dbserver
      volumes:
    • /var/run/docker.sock:/var/run/docker.sock
      ports:
    • 9060:9060

    decisionserverruntime:
    build:
    context: ../
    dockerfile: ./docker-compose/decisionserverruntime/Dockerfile
    image: odm-decisionserverruntime:8.8.1.1
    links:

    • dbserver
    • decisionserverconsole
      depends_on:
    • dbserver
    • decisionserverconsole
      volumes:
    • /var/run/docker.sock:/var/run/docker.sock
      ports:
    • 9090:9080
    • 9443
      `
  • to publish on Bleumix, we dropped all the volumes temporaly.

RES console Diagnostic raise warning

The RES Console Diagnostic raise warning beacause no xu is available. We need to configure the console to avoid this warning. I have take a look in the code and it's seem we need to introduce a new behavior in the console near the one as ZOS (except that the htds is available).

Warnings from Solr in the log for DC when starting the DC container

When we start the DC container, we get the following warnings. We should check whether it is normal or not to get these warnings. In the best world, it would be better to not have warnings.

decisioncenter_1 | [WARNING ] CWWKG0033W: The value [decisioncenter-libraries] specified for the reference attribute [commonLibraryRef] was not found in the configuration.
decisioncenter_1 | [WARNING ] CWWKG0033W: The value [decisioncenter-libraries] specified for the reference attribute [commonLibraryRef] was not found in the configuration.

decisioncenter_1 | [WARNING ] Couldn't add files from /tmp/solr_config7046266713554902815.dir/lib to classpath: /tmp/solr_config7046266713554902815.dir/lib
decisioncenter_1 | [WARNING ] [dc] Solr index directory '/tmp/decisioncenter-solr-dir/dc/index' doesn't exist. Creating new index...
decisioncenter_1 | [WARNING ] Cannot write to config directory /tmp/solr_config7046266713554902815.dir/configsets/shared/conf; switching to use InMemory storage instead.
decisioncenter_1 | [WARNING ] Starting optimize... Reading and rewriting the entire index! Use with care.

ODM on Docker Standalone Topology doesn't have a functioning DecisionRunner

DecisionRunner does not work on the Standalone Topology of ODM on Docker (it is fine on the Standard and Clustered topologies).

Example stack trace:
com.ibm.rules.cdi.core.service.output.ScenarioSuiteException: Error occurred while starting the job
at com.ibm.rules.cdi.runtime.DecisionRunnerController.startJob(DecisionRunnerController.java:494)
at com.ibm.rules.cdi.server.rest.api.DecisionRunnerAPIImplV1.processPostRequest(DecisionRunnerAPIImplV1.java:194)
at com.ibm.rules.cdi.server.servlet.DecisionRunnerRestServlet.handleRequest(DecisionRunnerRestServlet.java:293)
at com.ibm.rules.cdi.server.servlet.DecisionRunnerRestServlet.doPost(DecisionRunnerRestServlet.java:256)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1290)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:778)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:475)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1161)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:82)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:928)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:262)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:955)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.ready(HttpDispatcherLink.java:341)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:471)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleNewRequest(HttpInboundLink.java:405)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.processRequest(HttpInboundLink.java:285)
at com.ibm.ws.http.channel.internal.inbound.HttpICLReadCallback.complete(HttpICLReadCallback.java:66)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:504)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:574)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:929)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager$Worker.run(WorkQueueManager.java:1018)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.lang.Thread.run(Thread.java:785)
Caused by: com.ibm.rules.cdi.runtime.batch.BatchException: Error occurred when starting the job
at com.ibm.rules.cdi.runtime.batch.BatchService.startJob(BatchService.java:88)
at com.ibm.rules.cdi.runtime.DecisionRunnerController.startJob(DecisionRunnerController.java:490)
... 25 more
Caused by: com.ibm.rules.cdi.runtime.BatchFailedRuntimeException
at com.ibm.rules.cdi.runtime.batch.services.JNDIDelegatingThreadPoolServiceImpl.getExecutorService(JNDIDelegatingThreadPoolServiceImpl.java:108)
at com.ibm.rules.cdi.runtime.batch.services.JNDIDelegatingThreadPoolServiceImpl.executeTask(JNDIDelegatingThreadPoolServiceImpl.java:75)
at com.ibm.jbatch.container.impl.BatchKernelImpl.startJob(BatchKernelImpl.java:135)
at com.ibm.rules.cdi.runtime.batch.BatchService.startJob(BatchService.java:82)
... 26 more
Caused by: com.ibm.rules.cdi.runtime.BatchExecutionException: Error occurred while retrieving com.ibm.rules.cdi.runtime.batch.services.JNDIDelegatingThreadPoolServiceImpl batch thread pool service
at com.ibm.rules.cdi.runtime.batch.services.JNDIDelegatingThreadPoolServiceImpl.getExecutorService(JNDIDelegatingThreadPoolServiceImpl.java:106)
... 29 more
Caused by: javax.naming.NamingException: CWNEN1001E: The object referenced by the java:comp/env/concurrent/drExecutorService JNDI name could not be instantiated. If the reference name maps to a JNDI name in the deployment descriptor bindings for the application performing the JNDI lookup, make sure that the JNDI name mapping in the deployment descriptor binding is correct. If the JNDI name mapping is correct, make sure the target resource can be resolved with the specified name relative to the default initial context. [Root exception is com.ibm.wsspi.injectionengine.InjectionException: CWNEN0030E: The server was unable to obtain an object instance for the java:comp/env/concurrent/drExecutorService reference. The exception message was: CWNEN1004E: The server was unable to find the concurrent/drExecutorService default binding with the java.util.concurrent.ExecutorService type for the java:comp/env/concurrent/drExecutorService reference.]
at com.ibm.ws.injectionengine.osgi.internal.naming.InjectionJavaColonHelper.newCannotInstantiateObjectException(InjectionJavaColonHelper.java:183)
at com.ibm.ws.injectionengine.osgi.internal.naming.InjectionJavaColonHelper.getObjectInstance(InjectionJavaColonHelper.java:118)
at com.ibm.ws.jndi.url.contexts.javacolon.internal.JavaURLContext.lookup(JavaURLContext.java:333)
at com.ibm.ws.jndi.url.contexts.javacolon.internal.JavaURLContext.lookup(JavaURLContext.java:371)
at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)
at javax.naming.InitialContext.lookup(InitialContext.java:428)
at com.ibm.rules.cdi.runtime.batch.services.JNDIDelegatingThreadPoolServiceImpl.getExecutorService(JNDIDelegatingThreadPoolServiceImpl.java:104)
... 29 more
Caused by: com.ibm.wsspi.injectionengine.InjectionException: CWNEN0030E: The server was unable to obtain an object instance for the java:comp/env/concurrent/drExecutorService reference. The exception message was: CWNEN1004E: The server was unable to find the concurrent/drExecutorService default binding with the java.util.concurrent.ExecutorService type for the java:comp/env/concurrent/drExecutorService reference.
at com.ibm.wsspi.injectionengine.InjectionBinding.getInjectionObject(InjectionBinding.java:1458)
at com.ibm.wsspi.injectionengine.InjectionBinding.getInjectionObject(InjectionBinding.java:1389)
at com.ibm.ws.injectionengine.osgi.internal.naming.InjectionJavaColonHelper.getObjectInstance(InjectionJavaColonHelper.java:116)
... 34 more
Caused by: com.ibm.wsspi.injectionengine.InjectionException: CWNEN1004E: The server was unable to find the concurrent/drExecutorService default binding with the java.util.concurrent.ExecutorService type for the java:comp/env/concurrent/drExecutorService reference.
at com.ibm.ws.injectionengine.osgi.internal.IndirectJndiLookupObjectFactory.getObjectInstance(IndirectJndiLookupObjectFactory.java:193)
at com.ibm.ws.injectionengine.osgi.internal.IndirectJndiLookupObjectFactory.getObjectInstance(IndirectJndiLookupObjectFactory.java:99)
at com.ibm.wsspi.injectionengine.InjectionBinding.getInjectionObjectInstance(InjectionBinding.java:1556)
at com.ibm.wsspi.injectionengine.InjectionBinding.getInjectionObject(InjectionBinding.java:1433)
... 36 more

Investigate how to replace Derby by another DB.

Derby is not seen as a production DB. The goal of this enhancement is to migrate from Derby to another DB that is more Cloud friendly.
We need to have a look at the offering in AWS / Azur / GCloud to see what is the best choice.

[ERROR ] CWWKF0042E: A feature definition cannot be found for the concurrent-1.0 feature, for the RES console

In the RES console log for the standard topology, we have the following error:

decisionserverconsole_1 | [ERROR ] CWWKF0042E: A feature definition cannot be found for the concurrent-1.0 feature. Try running the command, bin/installUtility install concurrent-1.0, to install the feature. Alternatively, you can run the command, bin/installUtility install defaultServer, to install all features that are referenced by this configuration.

It sounds like we are declaring an executor service for the RES console whereas it should only be done for the decision runner.

Split server.xml in sub configuration files.

Liberty configuration file need to be split in multiple files to be able for a user to override part of the configuration.

A proposal , have this following configuration files :

  • One file for Datasource declaration.
  • One file for Applications declaration.
  • One file for the security.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.