SolutionGuidance / psm

Welcome to the Medicare/Medicaid Provider Enrollment Screening Portal
http://projectpsm.org/
Other
26 stars 20 forks source link

Upgrade separate Drools server #385

Open cecilia-donnelly opened 7 years ago

cecilia-donnelly commented 7 years ago

As discussed in #274, we initially set up a rules server with very old versions of things. As @slifty wrote:

using JBPM 5.4 and Drools 5.5 means we are forced to use an old versions of several things. I have not tried turning the knobs to see how recent I can go without breaking things, but the version of jboss that is used by default in the official installer (7.1.1) is unsupported and unpatched (so it could very well have known zero days).

We need to upgrade this server for security purposes. I know we need to upgrade several pieces here -- @jasonaowen, @slifty, can you comment with details?

jasonaowen commented 7 years ago
  1. We are using the version of Drools that comes along with our version of jBPM. We need to figure out if those can be separated, if an old version of jBPM can work alongside a new version of Drools -- and, if so, what code changes we need to make to do so.
  2. We need to figure out what exactly is the newer analogue of Drools/Guvnor, as they changed both the names and the relationships between the different projects with KIE 6.
  3. We need to figure out how to deploy it: what version we want to use, what application server that implies (hopefully WildFly 10, so it can live in the same server as the PSM), and how to stand up an instance.
  4. After deploying it, we need to (a) import our rules and (b) configure the Drools client in the PSM to talk to the server - hopefully this will look very similar to our current code, but perhaps it will not.

Most of the work I did to try to upgrade jBPM was done with the unexamined assumption that (1) was impossible; it wasn't until a week or two ago that it occurred to me that maybe we could have an old version of jBPM and a new version of Drools.

I have some ideas on how to separate things in (1): split KnowledgeDelegate into a jBPM side and a Drools side, and exclude the Drools dependencies in gradle just like we're excluding jBPM's version of Hibernate. This work can be done in parallel with (2), (3), and (4a).

shaiksuhel1999 commented 1 month ago

Hi @jasonaowen , @brainwane , @kfogel , @jvasile , @slifty

I have use case where I'm creating the process and after some time I'm staring the process with jbpm 5.5. Once I create the process , jbpm will internally do insertion to few tables like SessionInfo,..etc. The same way when I start the process , jbpm will internally do insertion to few tables like ProcessInstanceLog,..etc.

This Exact functionality working fine with mssql from long time.

So recently I'm Migrating my DataBase from mssql to postgres then I found the below Issue.

Once I started the Process jbpm not inserting the values to ProcessInstanceLog table, because of this my workflows were failing(since I'm using this table data internally to gather some info). But For some how After my process failed then jbpm inserting values into this tables.

This insertion stuff done by jbpm internally, I'm not having any control over it.

Note: I have removed the @Lob annotation to make SessionInfo, WorkItemInfo, ProcessInstanceInfo entities wrk with postgres.

some guidance is appreciated, Thnx.

shaiksuhel1999 commented 1 month ago

@cecilia-donnelly

I'm using exact kind of binaries for my use case too, when I'm trying to migrate data base from mssql to postgres, finding some issues, please have a look on below

I have use case where I'm creating the process and after some time I'm staring the process with jbpm 5.5. Once I create the process , jbpm will internally do insertion to few tables like SessionInfo,..etc. The same way when I start the process , jbpm will internally do insertion to few tables like ProcessInstanceLog,..etc.

This Exact functionality working fine with mssql from long time.

So recently I'm Migrating my DataBase from mssql to postgres then I found the below Issue.

Once I started the Process jbpm not inserting the values to ProcessInstanceLog table, because of this my workflows were failing(since I'm using this table data internally to gather some info). But For some how After my process failed then jbpm inserting values into this tables.

This insertion stuff done by jbpm internally, I'm not having any control over it.

Note: I have removed the @Lob annotation to make SessionInfo, WorkItemInfo, ProcessInstanceInfo entities wrk with postgres.

some guidance is appreciated, Thnx.

kfogel commented 1 month ago

Hi, @shaiksuhel1999. We aren't working on this project anymore and aren't supporting it. (We would support and/or continue development if we had a contract to do so, but we don't currently have such a contract.)

I wish you luck in getting the migration working. /CC @jasonaowen and @jvasile -- the others I'm not CC'ing because I don't want to distract them with further notifications.