8 Replies Latest reply on Jan 8, 2008 9:23 AM by gutierrez.ge

    TaskInstance Problem

    gutierrez.ge

      Hi guys, i have a taskinstance and when i click on the next button the task is ended, but the next task is never created, on the process template i have a node running after ending that task, but i cant see the debugs that i added because i'd have to re-deploy the hole process (the logs line where added after having this problem) and it's already in production, is there any way that can substitude the class file of that node so it can take the new one without having to re-deploy?

      Thanks.

        • 1. Re: TaskInstance Problem
          kukeltje

          not very easy as far as I know. You'd have to dig into the sourcecode and see how .class files are stored in the DB and then create something yourself. Or.... deploy in a test server and see what db record is used and copy that over.

          • 2. Re: TaskInstance Problem
            gutierrez.ge

            damm...

            thanks,

            • 3. Re: TaskInstance Problem
              gutierrez.ge

              I did some research and i figured (not sure..) that jbpm uses the FileDefinition object to load the class byte array from the a database, and then with a specialize class, subclass of ClassLoader, loads the class from the byte array.

              But i still don't know where the binary class data is stored, i checked out the jbpm database and there is nothing stored besides the jbpm_byte_block table that is used to stored some object variables or something like that.

              Also i cheked the size of jbpm/server folder and when i do the deploy the size doesn't change, so i guess it's not using some embeded database.

              Any suggestion / comment / whatever... ??

              Thanks,

              • 4. Re: TaskInstance Problem
                koen.aers

                Binary data are effectively stored in the table jbpm_byte_block.

                Regards,
                Koen

                • 5. Re: TaskInstance Problem
                  gutierrez.ge

                  but when i extracted it just have 1024 bytes and my node class is larger than that, but well i'm gonna try again.

                  Thanks,

                  • 6. Re: TaskInstance Problem
                    anuragpaliwal

                    For some reason, jBPM stores bytes in block of 1024. Hence if your class file size is greater than 1024 bytes than it will break it in to multiple of 1024 and save it.

                    It seems you have just extracted 1 block only.

                    To fetch all the blocks of particular class file(if size is greater than 1024) you have to first fetch the ID_ of your class from the BYTEARRAY table and then use following query to get all the byte blocks of your class by putting the value of ID_ fetched earlier

                    select * from jbpm_byteblock where processfile_ = ?

                    I am just wondering tha there is another way to load class by using JBPM classloader(parent of process class loader) i.e by putting class file in WEB-INF/classes folder. I am not sure if it can do trick for you.


                    CHEERS!!!!!

                    • 7. Re: TaskInstance Problem
                      kukeltje

                      You can put the classes in WEB-INF/classes, but they are not versioned then.

                      • 8. Re: TaskInstance Problem
                        gutierrez.ge

                        Thanks you guys,