현상
커맨드 라인에서 파라미터를 지정하여 실행할 때, 파라미터 값 앞에 선행 공백이 포함된 경우 에러가 발생합니다.
원인
파라미터로 지정한 값에 선행 공백이 포함되어 있어 에러가 발생하였습니다.
SOURCE_TABLE 파라미터에 선행 공백 존재하는 경우
$ migrator.sh SOURCE_SCHEMA=world SOURCE_TABLE= country PROPERTY_FILE=migrator.properties.oracle
## [WARNING] Wrong arguments: country
org.antlr.v4.runtime.misc.ParseCancellationException:
Invalid Source Table Name : "" error occurs at 1:0 no viable alternative at input '<EOF>'
at com.m.migrator.antlr.ThrowingErrorListener.syntaxError(ThrowingErrorListener.java:30)
at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:67)
at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:561)
at org.antlr.v4.runtime.DefaultErrorStrategy.reportNoViableAlternative(DefaultErrorStrategy.java:310)
at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:147)
at com.m.migrator.antlr.tabColName_grammarParser.names(tabColName_grammarParser.java:163)
at com.m.migrator.antlr.tabColName_grammarParser.startString(tabColName_grammarParser.java:91)
at com.m.migrator.TableMigrator.splitTableNames(TableMigrator.java:1182)
at com.m.migrator.TableMigrator.initParams(TableMigrator.java:868)
at com.m.migrator.TableMigrator.initAndDoMigrate(TableMigrator.java:1282)
at com.m.migrator.TableMigrator.main(TableMigrator.java:1273)
at com.m.migrator.Main.main(Main.java:12)
Exit because of parameter error
SQL
복사
PROPERTY_FILE 파라미터에 선행 공백 존재하는 경우
$ migrator.sh SOURCE_SCHEMA=world SOURCE_TABLE=country PROPERTY_FILE= migrator.properties.oracle
INFO[16:04:50,930][TabMig[16:04:50.815]]TbCmdConnection.connect()(54) Connect To The Source- URL : jdbc:oracle:thin:@localhost:1521:orcl ID : sys
ERROR[16:04:51,002][TabMig[16:04:50.815]]TableMigrator.migrate()(212)
java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at com.m.migrator.conn.TbCmdConnection.connect(TbCmdConnection.java:79)
at com.m.migrator.conn.TbCmdConnection.connectSrcAndTgt(TbCmdConnection.java:23)
at com.m.migrator.TableMigrator.migrate(TableMigrator.java:210)
at com.m.migrator.TableMigrator.initAndDoMigrate(TableMigrator.java:1361)
at com.m.migrator.TableMigrator.main(TableMigrator.java:1273)
at com.m.migrator.Main.main(Main.java:12)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:470)
at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:506)
at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:595)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:230)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
... 11 more
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:607)
at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:161)
at oracle.net.nt.ConnOption.connect(ConnOption.java:159)
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:428)
SQL
복사
해결
파라미터를 지정할 때, 선행 공백 없이 입력하여 실행합니다.
$ migrator.sh SOURCE_SCHEMA=world SOURCE_TABLE=country PROPERTY_FILE=migrator.properties.oracle
INFO[16:03:04,460][L0.TbDPLDataLoader0]DataLoaderManager.run()(268) [L0.TbDPLDataLoader0]1740553384460 TOTAL Loaded ROWS: 239 (target schema = "WORLD", target table = "COUNTRY")
INFO[16:03:04,517][TabMig[16:03:02.954]]TableMigrator.migrate()(570) Loader remainThr : [0], isError : [false]
INFO[16:03:04,517][L0.TbDPLDataLoader0]DataLoader.finish()(83) Decrement remainThr : [0] and isError : [false]
INFO[16:03:04,517][TabMig[16:03:02.954]]TableMigrator.resetThrs()(1237) terminate extract thread...1
INFO[16:03:04,517][TabMig[16:03:02.954]]TableMigrator.resetThrs()(1252) terminate loader thread...1
INFO[16:03:04,518][TabMig[16:03:02.954]]TableMigrator.migrate()(585) [VERIFICATION] Source Info : world.country : 239 Rows, Target Info : world.country : 239 Rows [OK]
INFO[16:03:04,518][TabMig[16:03:02.954]]TableMigrator.migrate()(644) extract conneciton close
INFO[16:03:04,519][TabMig[16:03:02.954]]TableMigrator.migrate()(654) loader connection close
INFO[16:03:04,519][TabMig[16:03:02.954]]TableMigrator.migrate()(664) Elapsed Time (milliseconds) : 1565
INFO[16:03:04,519][TabMig[16:03:02.954]]TableMigrator.migrate()(665) End Migration
SQL
복사