Bug #26029 the GRT function ReverseEngineeringOracle.getVersion does not exist
Submitted: 1 Feb 2007 20:05 Modified: 5 Apr 2007 16:40
Reporter: Eric Singer Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Migration Toolkit Severity:S3 (Non-critical)
Version:5.0r11, 5.0r10, 5.0r9 OS:Linux (linux)
Assigned to: CPU Architecture:Any

[1 Feb 2007 20:05] Eric Singer
Description:
After testing the connection to Oracle, the following error occurs

./run_migration
Opening script file lua/_textforms.lua ...
Executing script file lua/_textforms.lua ...

Execution finished.
Initializing migration environment...
Initialisation complete.

Testing connection to Oracle Database Server ...
------------------------------------------------
error executing script: scripts/TextMigrationScript.lua:648: the GRT function ReverseEngineeringOracle.getVersion does not exist

How to repeat:
1) Change directory to /usr/lib/mysql-gui/migration-toolkit-script
2) Execute ./run_migration
3) On "Source database connection" menu, select "Oracle Database Server" then select "Next"
4) On the next screen select "Create new connection" then select "Next"
5) On the next screen select "Oracle Then JDBC Driver using SID then select "Next"
6) On the next screen fill in the Oracle connection information then select "Next".

The application fails with the "error executing script: scripts/TextMigrationScript.lua:648: the GRT function ReverseEngineeringOracle.getVersion does not exist" message.
[2 Feb 2007 14:07] Valeriy Kravchuk
Thank you for a problem report. What version of Oracle are you connecting to? What version of JDBC driver for Oracle is used? 

I was not able to repeat this problem on Windows XP with local Oracle XE, hence the questions.
[2 Feb 2007 14:23] Eric Singer
The Oracle version is 10.1.0.5 and not sure about the JDBC version.  Please note that this is on Linux (Red Hat AS 4 Update 4 x86).  In the past we used the Windows version and it worked, however it was very slow due to the network.  Our archecture is Oracle (On Linux) and MySQL (On Linux).  Using my PC to transfer data from Oracle (On Linux) to my PC (Windows XP) to MySQL (On Linux) took over 24 hours.  Since MySQL and Oracle are running on the same server, we thought we'd increase the migration speed using the Migration Toolkit locally as well.
[12 Feb 2007 18:08] Valeriy Kravchuk
Please, send tyhe results of the following Linux commands:

echo $PATH
echo $LD_LIBRARY_PATH
find / -name "ojdbc*.jar" 2>/dev/null

Looks like your MT can not just find Oracle's JDBC driver (it should be in $ORACLE_HOME/jdbs/lib).
[12 Feb 2007 18:13] Eric Singer
Here's the requested output.

>:echo $PATH
/opt/sqr8.5.0/bin/SQR/Server/Oracle/bin:.:/opt/VRTSvcs/bin:/usr/java/jdk1.6.0_01/jre/bin/java:/clis:/usr/cbin:/oracle/product/10g/client/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/opt/VRTSvcs/bin:/usr/lib/fs/vxfs:/opt/VRTS/bin

>:echo $LD_LIBRARY_PATH
/opt/sqr8.5.0/bin/SQR/Server/Oracle/bin:/opt/sqr8.5.0/lib:/opt/sqr8.5.0/common/JRE/Sun/1.4.2/lib/i386/native_threads:/opt/sqr8.5.0/common/JRE/Sun/1.4.2/lib/i386/client:/opt/sqr8.5.0/common/JRE/Sun/1.4.2/lib/i386:/usr/local/lib:/oracle/product/10g/client/lib

>:find / -name "ojdbc*.jar" 2>/dev/null
/oracle/product/10g/client/jdbc/lib/ojdbc14.jar
/oracle/product/10g/client/jdbc/lib/ojdbc14_g.jar
/oracle/product/10g/client/jdbc/lib/ojdbc14dms_g.jar
/oracle/product/10g/client/jdbc/lib/ojdbc14dms.jar

Thank You,
Eric
[13 Feb 2007 14:43] Valeriy Kravchuk
Please, copy Oracle's JDBC driver, /oracle/product/10g/client/jdbc/lib/ojdbc14.jar, into java/lib subdirectory of your GUI Tools installation directory (/usr/lib/mysql-gui/java/lib, I think), restart MT and try to migrate again. Inform about the results.
[13 Feb 2007 15:12] Eric Singer
Hi,

I copied the /oracle/product/10g/client/jdbc/lib/ojdbc14.jar file into /usr/lib/mysql-gui/migration-toolkit-script/java/lib and tried running run_migration and still had the same problem.

>:pwd
/usr/lib/mysql-gui/migration-toolkit-script/java/lib

>:ls
jtds-1.2.jar  mysql-connector-java-5.0.4-bin.jar  ojdbc14.jar
junit.jar     mysql-grt-java-1.0.0-bin.jar        sapdbc-7_6_00_12_4339.jar

This is a error (same as before)

Testing connection to Oracle Database Server ...
------------------------------------------------
error executing script: scripts/TextMigrationScript.lua:648: the GRT function ReverseEngineeringOracle.getVersion does not exist

Thank You,

Eric
[2 Mar 2007 19:15] Valeriy Kravchuk
Please, try to repeat with a newer version from GUI Tools 5.0r10, and inform about the results.
[5 Mar 2007 13:23] Eric Singer
Hi,

I downloaded the 5.0r10 version of the migration tool and it produces the same error message

Execution finished.
Initializing migration environment...
Initialisation complete.

Testing connection to Oracle Database Server ...
------------------------------------------------
error executing script: scripts/TextMigrationScript.lua:648: the GRT function ReverseEngineeringOracle.getVersion does not exist

Thank you,

Eric
[21 Mar 2007 12:21] Paul Glavin
I'm having exactly the same issues as Eric.
Also running on Red Hat AS 4 Update 4 x86 but connecting to an Oracle 9 Database.

I get the output
error executing script: scripts/MigrationScript.lua:470: the GRT function ReverseEngineeringOracle.getVersion does not exist

I've tried running the 5.0r10 from a windows environment but that fails on a reverse engineering error as well!
[5 Apr 2007 12:41] Eric Singer
I just downloaded the MySQL Migration Toolkit version 5.0r11 and I've been able to establish the Oracle contection.  So it's seems this has been fixed!!

However,  There is a problem/bug when I finally get to the "Generate target objects".  If I select "Create objects online" and Select OK to continue, I get this error message.

The SQL create script cannot be executed.
"The function TransformationMysql:splitSqlCommands() returned the following error:
You have to submit a SQL script string as parameter."
"com.mysql.grt.Grt.callGrtFunction(Unknown Source)
com.mysql.grt.modules.TransformationMysqlJdbc.executeSqlStatements(Unknown Source)
com.mysql.grt.modules.TransformationMysqlJdbc.executeSqlStatementPress <Enter> to continue.
[5 Apr 2007 16:04] Valeriy Kravchuk
Eric,

As you do not have original problem any more with 5.0r11, we should close this report, I think. Your new problems is different, and I suggest you to report a new bug. If you can repeat it with sample SCOTT's schema in Oracle, just say that. If no, please, save the SQL script generated and send it in the new bug report.

Do you agree to proceed as described above?
[5 Apr 2007 16:40] Eric Singer
I'll proceed with another bug report and this case should be closed on this bug.

Thank You,

Eric
[24 Jul 2008 14:30] Bosse Klykken
I have the same problem, although I do not try to migrate on the same system. I have one system running Oracle 9i, one system running the MT (as that's the only low-risk production system we have left on RHEL4, in order to get MT working) and a RHEL5 system with mysql-server-5.0.45-7.el5.

I tried copying /ora/u01/app/oracle/product/9.2.0/jdbc/lib/ojdbc14.jar from the Oracle box to the box running MT, putting it under java/lib

# ls java/lib
jtds-1.2.jar  mysql-connector-java-5.0.4-bin.jar  ojdbc14.jar
junit.jar     mysql-grt-java-1.0.0-bin.jar        sapdbc-7_6_00_12_4339.jar

After running ./run_migration_simple and entering the Oracle details, I get the following error message (the same condition happens in the curses interface):

Please choose a database system:
--------------------------------
1. Generic Jdbc
2. MS SQL Server
3. MS Access
4. Oracle Database Server
5. MaxDB Database Server
6. MySQL Server
7. Sybase Server
0. Abort

Source Database System: 4

Please choose a connection:
---------------------------
1. Create new connection
0. Abort

Connection: 1

Creating new connection to Oracle Database Server ...
-----------------------------------------------------
Please enter the connection parameters.
Please choose a driver:
1. Oracle Thin JDBC Driver using SID
2. Oracle Thin JDBC Driver using Service
0. Abort

Driver: 1

SID: xxx
Hostname: oracle.xxx
Port: [1521] 
Username: system
Password: xxx
Connection String: 

Connection name (leave blank not to store): oracle

Testing connection to Oracle Database Server ...
------------------------------------------------
error executing script: scripts/MigrationScript.lua:470: the GRT function ReverseEngineeringOracle.getVersion does not exist

Thank you!