Yesterday I was creating an ESB that we wanted to use in a demo.
I was using a DB schema that I exported from a DB that was used in one of our internal applications.
The ESB itself was in fact a very simple example with just a file adapter to get the content of a csv file and a database adapter for inserting the content retrieved from this csv into the database.
I also checked the option to remove the csv when it was successfully retrieved.
Everything looked fine and I registered the application onto the application server.
So far, so good…
The application was registered without any problems and I wanted to test my application.
So I created a test csv file and copied it in the directory, waited 5 seconds until the file was removed, so I tought that everything worked correctly. I looked in the database, but my records where not inserted in the table.
Time to take a look at the ESB controller…
And indeed the status of my instance was invalid, so the next step to do is to take a look at the error message….
Strange, the error message was completely empty, no error, no trace, nothing…
This made it off course a bit more difficult to find out what the problem was.
So I took a closer look on this and tried to find out what I missed. I changed some things here and there, but did not found a solution, I always got the empty error.
Then I looked a bit closer to the table where I wanted to insert the data into and compared it with the content of the csv file. All the values of my csv for the primary, foreign, not nullable columns looked ok.
So why did he gave me that empty error message?
Then I tried to insert a record manually into the table, and I found out that this didn’t work either. Seemed that there existed some insert triggers on this table that would insert some data in a column when this field was empty and that these triggers used a packaged that was invalid(because it was using another schema that I didn’t imported). So just for testing I enabled all these triggers and tried to execute my esb process again. And it worked, so the problem I had was caused by a trigger on the table who was calling a procedure in an invalid package…
So, if you ever get an empty error message, the best thing to do is to check your database first…