archi-contribs / database-plugin

Database export/import plugin that store models in a central database repository
Other
81 stars 23 forks source link

Unable to connect on Oracle ADW #146

Closed mut closed 2 years ago

mut commented 2 years ago

Hello, it is unable to connect the plugin to the Oracle Autonomous Data Warehouse using mTLS connection: the TNS listener is correctly configured and working using other jdbc connections.

Opening the jar, it seems that the plugin lacks some needed libraries like ucp.jar

I'm available for testing, thank you in advance for your help! Andrea

ArchiConfigAndLog.zip

herve91 commented 2 years ago

Hi,

Thanks for raising this. I do not have Oracle Autonomous Data Warehouse so cannot test it on my own. I just sent a test release in which I added the ucp.jar library file as you suggested. If your tests show that this library solves your issue, then I'll add it to the main branch.

You may access the test release by selecting the "add_Oracle_ucp_jr" branch:

image

Best regards Hervé

herve91 commented 2 years ago

By the way, reading a bit Oracle's documentation ... Did you try to set javax.net.ssl.trustStore parameter in Archi's ini file ?

herve91 commented 2 years ago

just in case, I also released a version with Oracle's oraclepki.jar, osdt_core.jar and osdt_cert.jar.

Hope this helps. Hervé

herve91 commented 2 years ago

Hi, Did you check the version with the libraries you requested ? Did it fix your issue ?

Thanks

herve91 commented 2 years ago

Hi, Did you have time to check if adding the libraries solves your issue ?

Thanks

mut commented 2 years ago

Hi @herve91, sorry for late, I will test in these days,

Thanks!

gcoriasco commented 2 years ago

Hi I tried both the plugin versions you provided with our Oracle ADW deployment. Here are the results:

Thanks Giovanni

herve91 commented 2 years ago

Hi,

Happy that you can now connect to your database. I will add the Oracle libraries in the plugin mainstream.

Regarding your error message, it is due to a NULL constraint added on columns that cannot be NULL (obviously). Of course, this situation should never happen. More specificallyn the PIM_ID column is a purely technical ID that is generated by Oracle during the insert, using a trigger.

How did you initialize the database ? Has it been initialized by the plugin or did you export/import a model from another database ?

Best regards Hervé

gcoriasco commented 2 years ago

Hi Hervé, Actually the database had just been initialized by the plugin and that was the first attempt to export an archimate model.

Regards Giovanni

herve91 commented 2 years ago

Hi Giovanni,

I just realised that I did not answer your last post. I've conducted few tests and I believe I've found the reason why you're experiencing this error message.

I should be able to send you a corrected version in the coming days.

Best regards Hervé

gcoriasco commented 2 years ago

Hi Hervé,

No problem. On the contrary, thank you. I will test new version as soon as I can.

By the way, I take this opportunity for going a bit off thread (my apologies) with another question: is there a way to make the plug-in use the database as just output overwriting any existing data related to the current model and avoiding two-way syncing?

Thanks in advance

Giovanni

mut commented 2 years ago

Hi Hervé, we disabled the table constraints to make the db export working (of course actually the PIM_ID column is always NULL). In the meantime have you identified the error?

Thank you in advance, Andrea

herve91 commented 2 years ago

Hi Andrea, Yes I have identified the issue but I lack time to release a new version of my plugin. Cancelling the constraint may have impacts on the plugin as the column is supposed to be not null as it is the primary key.

As the plugin is retro-compatible with older versions of Oracle that do not implement auto-increment columns. So the plugin is supposed to create triggers that auto-increments the PIM_ID column and the anomaly concerns the creation of this trigger.

You may manually create this trigger using the following SQL request after b eing connected to the schema where you created the plugin tables: CREATE OR REPLACE TRIGGER seq_profiles_in_model BEFORE INSERT ON profiles_in_model FOR EACH ROW BEGIN SELECT seq_profiles_in_model.NEXTVAL INTO :NEW.pim_id FROM DUAL;END;

Please let me know it solves your issue or if you need further assistance.

Best regards Hervé

herve91 commented 2 years ago

closed as no answer