ā05-11-2023 06:13 AM
Hi,
Trying to access a distant SQL database from a workflow, I'm unable to import relevant python module. Is this natively possible or should I installed additionnal python module ? And if yes, how ? Older post talk about former XMC, but seems not to be effective in XIQ-SE.
Regards.
Jave
Solved! Go to Solution.
ā05-12-2023 06:39 AM
Officially I do not think there is a means to import modules in either Python or Jython as used by XMC/XIQ-SE.
XMC/XIQ-SE includes python2.7/python3 command line interpreters but primarily uses Jython - a Java-based python interpreter for its GUI-based Python script executions.
While it's likely possible to tweak the system to use pip, etc to import modules for either I do not think formally this is supported.
To add formal support would be a product enhancement / feature request.
ā05-14-2023 11:44 PM
You may consider using the build-in driver. more details in the XIQ-SE licensing calculation workflow:
from com.ziclix.python.sql import zxJDBC
try:
cnxn = zxJDBC.connect(url,emc_vars["dbUser"], emc_vars["dbPassword"], driver)
mycursor = cnxn.cursor()
mycursor.close()
cnxn.close()
except:
status = emc_results.Status;
emc_results.setStatus( status.ERROR )
emc_results.put("workflowMessage","MySQL Database access issue, check the password in Variables!")
wf_error("MySQL Database access issue, check the password in Variables!")
else:
wf_info("MySQL Database access OK.")
ā11-08-2024 09:55 AM
Hi,
If you replace the MySQL driver with PSQL driver you should be able to re-use majority of the workflow. basic SQL commands are the same for MySQL and PSQL...
from com.ziclix.python.sql import zxJDBC
# Try the DB connection and if it is not successful than stop
url = 'jdbc:postgresql://localhost:4589/netsight' #URL with port and database name
driver = 'org.postgresql.Driver'
try:
cnxn = zxJDBC.connect(url,emc_vars["dbUser"], emc_vars["dbPassword"], driver)
mycursor = cnxn.cursor()
mycursor.close()
cnxn.close()
except:
status = emc_results.Status;
emc_results.setStatus( status.ERROR )
emc_results.put("workflowMessage","Database access issue, check the password in Variables!")
else:
print ("Database access OK.")
ā05-14-2023 11:44 PM
You may consider using the build-in driver. more details in the XIQ-SE licensing calculation workflow:
from com.ziclix.python.sql import zxJDBC
try:
cnxn = zxJDBC.connect(url,emc_vars["dbUser"], emc_vars["dbPassword"], driver)
mycursor = cnxn.cursor()
mycursor.close()
cnxn.close()
except:
status = emc_results.Status;
emc_results.setStatus( status.ERROR )
emc_results.put("workflowMessage","MySQL Database access issue, check the password in Variables!")
wf_error("MySQL Database access issue, check the password in Variables!")
else:
wf_info("MySQL Database access OK.")
ā05-14-2023 11:46 PM
ā11-08-2024 03:50 AM - edited ā11-08-2024 04:37 AM
Hi,
After upgrade to latest version of XIQ-SE, I have now this error for scripts using mysql JDBC driver:
driver [com.mysql.jdbc.Driver] not found
but it runs correctly using "org.postgresql.Driver".
How can I correct this ? Is it related to XIQ-SE database migration from mysql to postgres ?
Regards.
ā11-08-2024 05:39 AM
I would imagine so. All things MySQL are being removed as a result of the migration. Do you need mySQL for the purpose of the workflow since you've upgraded SE to 24.7+?