So here's a strange one that I didn't find anywhere in my numerous searches, so I figured I would post it here. When running a TDI AssemblyLine, I got the following exception / error:
12:14:43,274 ERROR - [My-JDBC-Connector] CTGDIS810E handleException - cannot handle exception , addonly
java.lang. IllegalArgumentException: unknown format type at
at com.ibm.icu.text. MessageFormat.makeFormat( MessageFormat.java:2086)
at com.ibm.icu.text. MessageFormat.applyPattern( MessageFormat.java:589)
at com.ibm.icu.text. MessageFormat.<init>( MessageFormat.java:437)
at com.ibm.icu.text. MessageFormat.format( MessageFormat.java:1137)
at com.ibm.di.util. ParameterSubstitution. substitute( ParameterSubstitution.java: 229)
at com.ibm.di.util. ParameterSubstitution. substitute( ParameterSubstitution.java: 173)
at com.ibm.di.util. ParameterSubstitution. substitute( ParameterSubstitution.java: 245)
at com.ibm.di.connector. JDBCConnector.putEntry( JDBCConnector.java:1202)
at com.ibm.di.server. AssemblyLineComponent. executeOperation( AssemblyLineComponent.java: 3351)
at com.ibm.di.server. AssemblyLineComponent.add1( AssemblyLineComponent.java: 2012)
at com.ibm.di.server. AssemblyLineComponent.add( AssemblyLineComponent.java: 1965)
at com.ibm.di.server. AssemblyLine. msExecuteNextConnector( AssemblyLine.java:3780)
at com.ibm.di.server. AssemblyLine.executeMainStep( AssemblyLine.java:3391)
at com.ibm.di.server. AssemblyLine.executeMainLoop( AssemblyLine.java:2989)
at com.ibm.di.server. AssemblyLine.executeMainLoop( AssemblyLine.java:2972)
at com.ibm.di.server. AssemblyLine.executeAL( AssemblyLine.java:2939)
at com.ibm.di.server. AssemblyLine.run(AssemblyLine. java:1317)
12:14:43,276 ERROR - CTGDIS266E Error in NextConnectorOperation. Exception occurred: java.lang.IllegalArgumentException: unknown format type at
java.lang. IllegalArgumentException: unknown format type at
at com.ibm.icu.text. MessageFormat.makeFormat( MessageFormat.java:2086)
at com.ibm.icu.text. MessageFormat.applyPattern( MessageFormat.java:589)
at com.ibm.icu.text. MessageFormat.<init>( MessageFormat.java:437)
at com.ibm.icu.text. MessageFormat.format( MessageFormat.java:1137)
at com.ibm.di.util. ParameterSubstitution. substitute( ParameterSubstitution.java: 229)
at com.ibm.di.util. ParameterSubstitution. substitute( ParameterSubstitution.java: 173)
at com.ibm.di.util. ParameterSubstitution. substitute( ParameterSubstitution.java: 245)
at com.ibm.di.connector. JDBCConnector.putEntry( JDBCConnector.java:1202)
at com.ibm.di.server. AssemblyLineComponent. executeOperation( AssemblyLineComponent.java: 3351)
at com.ibm.di.server. AssemblyLineComponent.add1( AssemblyLineComponent.java: 2012)
at com.ibm.di.server. AssemblyLineComponent.add( AssemblyLineComponent.java: 1965)
at com.ibm.di.server. AssemblyLine. msExecuteNextConnector( AssemblyLine.java:3780)
at com.ibm.di.server. AssemblyLine.executeMainStep( AssemblyLine.java:3391)
at com.ibm.di.server. AssemblyLine.executeMainLoop( AssemblyLine.java:2989)
at com.ibm.di.server. AssemblyLine.executeMainLoop( AssemblyLine.java:2972)
at com.ibm.di.server. AssemblyLine.executeAL( AssemblyLine.java:2939)
at com.ibm.di.server. AssemblyLine.run(AssemblyLine. java:1317)
The problem was that I had a scriptable field in a connector that was set as "Text w/substitution", but needed to be set to "Advanced (JavaScript)". Sometimes (with only a tiny bit of JavaScript, for example), you can get away with this. But in my case, I had a LOT of JavaScript and this error was the result.
To figure that out, I put lots of debugging code in the JavaScript itself and in the Component Hooks around when this field should have been evaluated.