"Unknown trans log instruction" in JDBC driver

Hello friends,

In my test system, my JDBC driver shuts itself down with a java exception on startup. It gets past getting the table metadata, connecting to the database, etc, then dies:

[01/23/19 00:15:09.489]:Banner PT:END Get table metadata.
[01/23/19 00:15:09.489]:Banner PT:Retrieved database metadata.
[01/23/19 00:15:09.489]:Banner PT:BEGIN Set transaction isolation level.
[01/23/19 00:15:09.489]:Banner PT:END Set transaction isolation level.
[01/23/19 00:15:09.490]:Banner PT:Connecting to database...
[01/23/19 00:15:09.490]:Banner PT:BEGIN Open connection 'dedicated1'.
[01/23/19 00:15:09.540]:Banner PT:END Open connection.
[01/23/19 00:15:09.540]:Banner PT:Connected to database.
[01/23/19 00:15:09.540]:Banner PT:BEGIN Set transaction isolation level.
[01/23/19 00:15:09.540]:Banner PT:END Set transaction isolation level.
[01/23/19 00:15:09.543]:Banner PT:Publisher is active.
[01/23/19 00:15:09.543]:Banner PT:This driver's GUID: FE42A480-26EE-452D-71BD-80A442FEEE26
[01/23/19 00:15:09.692]:Banner PT:Unhandled Exception: java.lang.AssertionError: unknown trans log instruction '4' at log offset: 3677324
[01/23/19 00:15:09.692]:Banner PT:java.lang.AssertionError: unknown trans log instruction '4' at log offset: 3677324
at org.mapdb.StoreWAL.verifyLogFile(StoreWAL.java:772)
at org.mapdb.StoreWAL.<init>(StoreWAL.java:82)
at org.mapdb.DBMaker.extendStoreWAL(DBMaker.java:928)
at org.mapdb.DBMaker.makeEngine(DBMaker.java:722)
at org.mapdb.DBMaker.make(DBMaker.java:665)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFile.setRecMan(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFile.open(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFileManager.newJDBMFile(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFileManager.getFile(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCChannel.getFile(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCTriggerlessPublicationShim.openTriggerlessFile(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCTriggerlessPublicationShim.beforePoll(Unknown Source)

The only reference I've seen to this error ("unknown trans log instruction") is about a data collection service driver. Could it be when I was updating these Designer packages I managed to half-a**edly enable something I didn't want to enable and now it's not working because it isn't configured? Or something?

Sigh.

Thanks for any advice -
Karla
  • More info: I looked at the working version of this driver, and what happens where the test one pukes are "Restricting file Permission" lines - specifically

    [01/21/19 00:15:05.300]:Banner PT:END Get table metadata.
    [01/21/19 00:15:05.300]:Banner PT:Retrieved database metadata.
    [01/21/19 00:15:05.300]:Banner PT:BEGIN Set transaction isolation level.
    [01/21/19 00:15:05.300]:Banner PT:END Set transaction isolation level.
    [01/21/19 00:15:05.301]:Banner PT:Connecting to database...
    [01/21/19 00:15:05.301]:Banner PT:BEGIN Open connection 'dedicated1'.
    [01/21/19 00:15:05.336]:Banner PT:END Open connection.
    [01/21/19 00:15:05.336]:Banner PT:Connected to database.
    [01/21/19 00:15:05.336]:Banner PT:BEGIN Set transaction isolation level.
    [01/21/19 00:15:05.337]:Banner PT:END Set transaction isolation level.
    [01/21/19 00:15:05.337]:Banner PT:Publisher is active.
    [01/21/19 00:15:05.338]:Banner PT:This driver's GUID: 176029B2-A37E-4C89-91BD-B22960177EA3
    ____________________________________________________________________________________________________________> where my test driver dies
    [01/21/19 00:15:05.356]:Banner PT:Restricting file Permission for ./jdbc_176029b2-a37e-4c89-91bd-b22960177ea3.t
    [01/21/19 00:15:05.356]:Banner PT:Restricting file Permission for ./jdbc_176029b2-a37e-4c89-91bd-b22960177ea3.p
    [01/21/19 00:15:05.356]:Banner PT:Restricting file Permission for ./jdbc_176029b2-a37e-4c89-91bd-b22960177ea3

    "Restricted" files listed above this in the trace:

    [01/21/19 00:15:03.454]:Banner PT:Restricting file Permission for ./jdbc_176029b2-a37e-4c89-91bd-b22960177ea3_0.t
    [01/21/19 00:15:03.454]:Banner PT:Restricting file Permission for ./jdbc_176029b2-a37e-4c89-91bd-b22960177ea3_0.p
    [01/21/19 00:15:03.454]:Banner PT:Restricting file Permission for ./jdbc_176029b2-a37e-4c89-91bd-b22960177ea3_0
    [01/21/19 00:15:03.495]:Banner PT:Restricting file Permission for ./jdbc_176029b2-a37e-4c89-91bd-b22960177ea3_1.t
    [01/21/19 00:15:03.496]:Banner PT:Restricting file Permission for ./jdbc_176029b2-a37e-4c89-91bd-b22960177ea3_1.p
    [01/21/19 00:15:03.496]:Banner PT:Restricting file Permission for ./jdbc_176029b2-a37e-4c89-91bd-b22960177ea3_1

    My test system has lines similar to the second six lines, but fails when it comes to what looks like dealing with the "originals", I'd guess? since the ones that fail don't have _0 or _1 in the names...

    Are they corrupted or something, maybe?

    Karla
  • Have you upgraded recently? Any power outages or other similar issues?
    Out of disk space recently?

    Just guessing that your temporary files for this table are corrupted
    somehow, so you may just need to delete them and let them recreate. this
    looks like the shim is running in the engine (vs. the Remote Loader (RL))
    so the files will be in the DIB directory
    (/var/opt/novell/eDirectory/data/dib by default) and probably have the
    GUID of the driver config object (which is in your trace there) in the
    name: FE42A480-26EE-452D-71BD-80A442FEEE26

    If so, stop eDirectory, move those files with that GUID in the name
    somewhere else (to later be deleted if this works), and then start
    eDirectory and the driver config object again and see if that helps.

    On 01/23/2019 01:04 PM, kborecky wrote:
    >
    > Hello friends,
    >
    > In my test system, my JDBC driver shuts itself down with a java
    > exception on startup. It gets past getting the table metadata,
    > connecting to the database, etc, then dies:
    >
    > [01/23/19 00:15:09.489]:Banner PT:END Get table metadata.
    > [01/23/19 00:15:09.489]:Banner PT:Retrieved database metadata.
    > [01/23/19 00:15:09.489]:Banner PT:BEGIN Set transaction isolation
    > level.
    > [01/23/19 00:15:09.489]:Banner PT:END Set transaction isolation
    > level.
    > [01/23/19 00:15:09.490]:Banner PT:Connecting to database...
    > [01/23/19 00:15:09.490]:Banner PT:BEGIN Open connection 'dedicated1'.
    > [01/23/19 00:15:09.540]:Banner PT:END Open connection.
    > [01/23/19 00:15:09.540]:Banner PT:Connected to database.
    > [01/23/19 00:15:09.540]:Banner PT:BEGIN Set transaction isolation
    > level.
    > [01/23/19 00:15:09.540]:Banner PT:END Set transaction isolation
    > level.
    > [01/23/19 00:15:09.543]:Banner PT:Publisher is active.
    > [01/23/19 00:15:09.543]:Banner PT:This driver's GUID:
    > FE42A480-26EE-452D-71BD-80A442FEEE26
    > [01/23/19 00:15:09.692]:Banner PT:Unhandled Exception:
    > java.lang.AssertionError: unknown trans log instruction '4' at log
    > offset: 3677324
    > [01/23/19 00:15:09.692]:Banner PT:java.lang.AssertionError: unknown
    > trans log instruction '4' at log offset: 3677324
    > at org.mapdb.StoreWAL.verifyLogFile(StoreWAL.java:772)
    > at org.mapdb.StoreWAL.<init>(StoreWAL.java:82)
    > at org.mapdb.DBMaker.extendStoreWAL(DBMaker.java:928)
    > at org.mapdb.DBMaker.makeEngine(DBMaker.java:722)
    > at org.mapdb.DBMaker.make(DBMaker.java:665)
    > at
    > com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFile.setRecMan(Unknown
    > Source)
    > at
    > com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFile.open(Unknown
    > Source)
    > at
    > com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFileManager.newJDBMFile(Unknown
    > Source)
    > at
    > com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFileManager.getFile(Unknown
    > Source)
    > at com.novell.nds.dirxml.driver.jdbc.JDBCChannel.getFile(Unknown
    > Source)
    > at
    > com.novell.nds.dirxml.driver.jdbc.JDBCTriggerlessPublicationShim.openTriggerlessFile(Unknown
    > Source)
    > at
    > com.novell.nds.dirxml.driver.jdbc.JDBCTriggerlessPublicationShim.beforePoll(Unknown
    > Source)
    >
    > The only reference I've seen to this error ("unknown trans log
    > instruction") is about a data collection service driver. Could it be
    > when I was updating these Designer packages I managed to half-a**edly
    > enable something I didn't want to enable and now it's not working
    > because it isn't configured? Or something?
    >
    > Sigh.
    >
    > Thanks for any advice -
    > Karla
    >
    >


    --
    Good luck.

    If you find this post helpful and are logged into the web interface,
    show your appreciation and click on the star below.

    If you want to send me a private message, please let me know in the
    forum as I do not use the web interface often.
  • Well, upon examining the files in that neighborhood, I see that there are a number of jdbc_DRIVER-GUID.db.1.bak or even .bad files, but NO jdbc_DRIVER-GUID.db proper. I don't know how in the world this could happen, but I really only need to know how to get one back. :-) I'm assuming if I move all the jdbc files with that Driver GUID out of that directory, it will start from scratch - which would mean resyncing all the records, yes? This is my test system and I can live with that, but... if I could tastefully get back a .db file without doing that, it would be swell.

    (The .db.bak files are all pretty old, though since I'm not sure what sort of things are even stored in there, I can say if it's bad or not.)

    Progressing but still in the dark,
    Karla
  • As ab suggest you should try with loving the files to another directory and restart.
    There has been issues with the temporary files in some occations. Make sure you have applied the latest patches including the one for the jdbc driver.
  • On 01/24/2019 12:44 AM, joakim ganse wrote:
    >
    > As ab suggest you should try with loving the files to another directory


    In case it is not clear, Lothar is a very kind person, probably even
    believing that, contrary to his country's stereotype, files can be moved
    from one location to another through emotional expression, but really he
    did mean 'moving'.


    --
    Good luck.

    If you find this post helpful and are logged into the web interface,
    show your appreciation and click on the star below.

    If you want to send me a private message, please let me know in the
    forum as I do not use the web interface often.
  • ab wrote:

    > Lothar is a very kind person


    And Joakim is even nicer than me, plus his country stereotype is a lot
    firendler, too. :-)
  • That has to be one of my best typos. L and M being that close. Can't even blame it in the auto correct.
  • Well, I can't say I was feeling too LOVING toward these files! but now I do. :-)

    I'll let you all know what happens when I release the bats. (That's a Birthday Party song, if you don't know it.)

    Thanks, everyone!
    Karla
  • Well, as expected, it is syncing every record. But, this is the test system, and what the hey, it's not a bad thing to go through something like this in the leisure of my test system just in case (heaven forbid) this would ever happen with my production system.

    Thanks, everyone! I just had to have someone verify I had to Bite The Bullet and move those bad boys out of the dib directory, then let fly.
  • If you want you could potentially add a Publisher channel rule that picks
    up these events, maybe as <sync/> events, and vetoes them, which would
    cause this sync to end pretty quickly.

    --
    Good luck.

    If you find this post helpful and are logged into the web interface,
    show your appreciation and click on the star below.

    If you want to send me a private message, please let me know in the
    forum as I do not use the web interface often.