Activity for John Eberhard

  • John Eberhard John Eberhard posted a comment on ticket #454

    "setTcpNoDelay" is a data source method. In the URL, you should use "tcp no delay=true" in the URL.

  • John Eberhard John Eberhard modified ticket #475

    Error on connection with password blank (not null) on version 11.2

  • John Eberhard John Eberhard modified ticket #478

    Support for CCSID 65535 for Data Translation - JT400 jar ver 10.7

  • John Eberhard John Eberhard modified ticket #479

    Extremely slow queries filtering with date 0001-01-01

  • John Eberhard John Eberhard posted a comment on ticket #479

    This project has moved to github: https://github.com/IBM/JTOpen If the below information does not help, please report the problem there. It looks like you need to configure your connection to use date format ISO to correctly process the 0001-01-01 date. Here is an example of the behavior without the date format setting and with the date format setting. ~> java -jar jt400.jar "jdbc:as400:$SYSTEM" $USERID $PASSWORD >select date('0001-01-01') from sysibm.sysdummy1 00001 null *** Warning *** SQLState:...

  • John Eberhard John Eberhard posted a comment on ticket #454

    Yes, it should be in JTOpen 11.0 Fixes and enhancements in JTOpen 11.0 released 2022-04-13 ... JDBC: Add connection property: tcp no delay

  • John Eberhard John Eberhard committed [r4361] on Svn

    jdbcClient: Handle char type for reflective method call

  • John Eberhard John Eberhard committed [r4331] on Svn

    JDBC:Internal Password Changes

  • John Eberhard John Eberhard committed [r4330] on Svn

    JDBC:Internal Password Changes

  • John Eberhard John Eberhard posted a comment on ticket #471

    The latest version of JTOpen should be compatible with all versions of "IBM i", as nothing is purposely changed to break backward compatibility. However, only the versions of "IBM i" that are currently in service are regularly tested and officially supported.

  • John Eberhard John Eberhard modified ticket #469

    Performance Issues due to Packet Size

  • John Eberhard John Eberhard posted a comment on ticket #469

    It looks like the application is requesting that auto generated keys are to be returned by the insert statement. The JTOpen 5.4 driver did not always correctly return generated keys. If generated keys are not retrieved by the application, can the prepare of the insert statement be changed to not request generated keys? In the JTOpen 5.4 driver the inserts are batched. In the recent drivers, the inserts cannot be batched because the return of auto generated keys was requested. Details: Tracepoint...

  • John Eberhard John Eberhard committed [r4329] on Svn

    JDBC:Internal Password Changes

  • John Eberhard John Eberhard posted a comment on ticket #469

    Can you provide traces of running with the old driver and the new driver so that I can compare them? Can you also use toolbox trace=all?

  • John Eberhard John Eberhard committed [r4327] on Svn

    Clear sensitive data from memory

  • John Eberhard John Eberhard committed [r4326] on Svn

    Refactor SignonConverter

  • John Eberhard John Eberhard committed [r4322] on Svn

    JDBC: XADataSource interfaces for char[] password

  • John Eberhard John Eberhard committed [r4321] on Svn

    JDBC: Rowset interfaces for char[] password

  • John Eberhard John Eberhard posted a comment on ticket #470

    You'll need to contact liberty / websphere support to make the changes outlined above.

  • John Eberhard John Eberhard posted a comment on ticket #470

    The JTOpen JDBCDataSources were changed to add a setPassword(char[]) method. The old setPassword(String) method was deprecated. This is because putting a password in a String is insecure, as the JVM may cache the string -- thus exposing the password if the process memory is dumped or if the JVM is dumped. It looks like com.ibm.ws.jdbc.internal.JDBCDriverService.setProperty method is confused and is trying to use the setPassword(char[]) method instead of the setPassword(String) method. It is trying...

  • John Eberhard John Eberhard modified ticket #469

    Performance Issues due to Packet Size

  • John Eberhard John Eberhard posted a comment on ticket #469

    Try setting the block size property "block size" Specifies the block size (in kilobytes) to retrieve from the system and cache on the client. This property has no effect unless the "block criteria" property is non-zero. Larger block sizes reduce the frequency of communication to the system, and therefore may increase performance. https://jt400.sourceforge.net/doc/com/ibm/as400/access/doc-files/JDBCProperties.html

  • John Eberhard John Eberhard modified ticket #468

    JT400 - libraries LIST

  • John Eberhard John Eberhard posted a comment on ticket #468

    Sorry, there is nothing that can be done. I suspect dbeaver is using the database metadata API's to request the list of the schemas on the database. The system is returning the list because there are a lot of schemas on the system.

  • John Eberhard John Eberhard modified ticket #467

    Parameters are cut off in prepared statement

  • John Eberhard John Eberhard posted a comment on ticket #467

    This is working as designed. Since the parameter is a CHAR(2) the driver is only able to send a CHAR(2) as the parameter. The parameter is truncated to Vi which then matches the value in the column. To avoid this problem, you can use the "query replace truncated parameter" connection property, which does the following. Specifies the value that should be used in place of a truncated parameter of an SQL query. By default, the parameter is silently truncated to the length for the parameter. Consider...

  • John Eberhard John Eberhard committed [r4295]

    JDBC: Permit cancel when using seamless failover

  • John Eberhard John Eberhard committed [r4294]

    JDBC: Permit cancel when using seamless failover

  • John Eberhard John Eberhard committed [r4293]

    Deprecate interfaces where password passed as a String

  • John Eberhard John Eberhard committed [r4292]

    Deprecate interfaces where password passed as a String

  • John Eberhard John Eberhard committed [r4291]

    Deprecate interfaces where password passed as a String

  • John Eberhard John Eberhard committed [r4290]

    Deprecate interfaces where password passed as a String

  • John Eberhard John Eberhard committed [r4289]

    Deprecate interfaces where password passed as a String

  • John Eberhard John Eberhard modified ticket #457

    Provide a custom 'SSLSocketFactory'

  • John Eberhard John Eberhard modified ticket #461

    Refresh token and timeouts

  • John Eberhard John Eberhard modified ticket #462

    Missing native implementation of AS400Credential

  • John Eberhard John Eberhard posted a comment on ticket #462

    You need to use the jt400Native.jar file that is shipped on the system. It is available in the following locations. /qibm/proddata/os400/jt400/lib/java6/jt400Native.jar /qibm/proddata/os400/jt400/lib/java8/jt400Native.jar /qibm/proddata/os400/jt400/lib/java9/jt400Native.jar /qibm/proddata/os400/jt400/lib/jt400Native.jar When using the swap support, you need to make sure your application is single-threaded, as the swap function applies to the entire job (not just the current thread).

  • John Eberhard John Eberhard modified ticket #460

    ServiceProgramCall 7 Parameters maximum

  • John Eberhard John Eberhard modified a comment on ticket #445

    One more thing. You should not be defining os.name when starting the JVM, as that will produce the behavior you are seeing. $ /QOpenSys/pkgs/lib/jvm/openjdk-11/bin/java -Dos.name=OS/400 -jar /qibm/proddata/os400/jt400/lib/java9/jt400.jar jdbc:as400:localhost $USERID $PASSWORD java.lang.NullPointerException at com.ibm.as400.access.PortMapper.getServerSocket(PortMapper.java:143) at com.ibm.as400.access.PortMapper.getServerSocket(PortMapper.java:129) at com.ibm.as400.access.AS400ImplRemote.signonConnect(AS400ImplRemote.java:3390)...

  • John Eberhard John Eberhard committed [r4283]

    JDBC: Close network socket on error

  • John Eberhard John Eberhard committed [r4282]

    JDBC: Update trace to include system name with RDB name

  • John Eberhard John Eberhard committed [r4281]

    JDBC: javadoc updates

  • John Eberhard John Eberhard committed [r4280]

    JDBC: ConnectionPool do not error if setThreadUsed does not change setting

  • John Eberhard John Eberhard posted a comment on ticket #454

    The fix will be in the next release, which is currently under test.

  • John Eberhard John Eberhard modified ticket #464

    JT400 SQL Query Latency on Windows Server 2019 or 2022

  • John Eberhard John Eberhard posted a comment on ticket #464

    I suspect the problem is that windows uses the nagle algorithm to reduce network load. This causes TCP/IP requests to be delayed -- hoping for a buffer to fill up. See bug 454 for more information.

  • John Eberhard John Eberhard modified ticket #463

    Error: No suitable driver found for jdbc:as400:....

  • John Eberhard John Eberhard posted a comment on ticket #463

    This is working as expected. The pre-jdk6 jar does not have support for the autoloading the the JDBC driver. For that jar, you need to use the older JDBC convention of using Class.forName to load the JDBC driver. For autoloading to work, you use to use a jar file for jdk6 or later.

  • John Eberhard John Eberhard committed [r4278]

    Add constructor AS400JDBCConnectionPoolDataSource(AS400)

  • John Eberhard John Eberhard committed [r4257]

    JDBC: Handle SQL7061 reason code 80 as blocked mirror system

  • John Eberhard John Eberhard committed [r4256]

    JDBC: Support LocalTime,LocalDate,LocalDateTime

  • John Eberhard John Eberhard modified ticket #459

    Change AS400JDBCStatement.toString() to return the query instead of name

  • John Eberhard John Eberhard posted a comment on ticket #459

    Sorry, that is not possible. The method is already defined as follows. public java.lang.String toString() Returns the statement name. The statement name could be used in other ways by other applications, so making the change could break other applications.

  • John Eberhard John Eberhard posted a comment on ticket #458

    I do see those time changes in JDBC 4.2. I'm not sure how they were missed. There will be the assumption that milliseconds will be lost when converting from LocalTime to SQLTIME. The timezone ones may not be possible. From JDBC 4.2 spec at https://download.oracle.com/otndocs/jcp/jdbc-4_2-mrel2-spec/ Additional Mappings to Table B-4, Mapping from Java Object to JDBC Types Added support to map java.time.LocalDate to JDBC DATE. Added support to map java.time.LocalTime to JDBC TIME Added support to map...

  • John Eberhard John Eberhard modified ticket #458

    Java 8 Time API - PreparedStatement setObject

  • John Eberhard John Eberhard posted a comment on ticket #458

    LocalDate is not supported. It looks like it can be converted to a String, then the string can be used. LocalTime is not supported. The problem is that the local time could have a minisecond component which would not be supported. You can try converting LocalTime to a String, but that would probably only work if the result looks like HH:MM:SS.

  • John Eberhard John Eberhard committed [r4254]

    JDBC: Add connection property: tcp no delay

  • John Eberhard John Eberhard modified ticket #396

    Problems with DatabaseMetaData.getColumns() with columns names included lower cases

  • John Eberhard John Eberhard modified ticket #454

    Add new JDBC Property

  • John Eberhard John Eberhard posted a comment on ticket #454

    "tcp no delay" has been added as a JDBC connection property. The fix is available in SVN and will be included in the next JTOpen release.

  • John Eberhard John Eberhard committed [r4253]

    JDBC: Add connection property: tcp no delay

  • John Eberhard John Eberhard committed [r4252]

    Include original exception in thrown exception

  • John Eberhard John Eberhard modified ticket #456

    Driver does not support get/set network timeout for connections

  • John Eberhard John Eberhard posted a comment on ticket #456

    The get/set network timeout does not work using a threaded server. If the network timeout was actually used, early versions of the jt400 driver would not behave correctly. To prevent this problem, later version of the driver detect that a threaded server is being used and disallows those method. The change was made in JTOpen 10.4 Fixes and enhancements in JTOpen 10.4 (released 2020-06-30) JDBC: setNetworkTimeout not supported when "thread used=true" To use network timeout, you need to set the following...

  • John Eberhard John Eberhard modified ticket #455

    FTP should send \r\n when logging in

  • John Eberhard John Eberhard created ticket #455

    FTP should send \r\n when logging in

  • John Eberhard John Eberhard modified ticket #453

    jt400 AS400 class problem with system property os.version when working with OpenJDK 11 on IBM i

  • John Eberhard John Eberhard posted a comment on ticket #453

    Are you manually setting os.name to OS/400? I believe os.name should be OS400 for Open JDK. If os.name is OS400, then you will not be going into this branch of the code. Native method support for OpenJDK is not available, so a userid and password must always be supplied when using OpenJDK.

  • John Eberhard John Eberhard posted a comment on ticket #351

    By definition void setQueryTimeout(int seconds) throws SQLException Sets the number of seconds the driver will wait for a Statement object to execute to the given number of seconds. By default there is no limit on the amount of time allowed for a running statement to complete. If the limit is exceeded, an SQLTimeoutException is thrown. A JDBC driver must apply this limit to the execute, executeQuery and executeUpdate methods. In your case, the execute portion has completed and data is now being fetched...

  • John Eberhard John Eberhard posted a comment on ticket #351

    As I mentioned above, the issue is on the IBM i where the system is not processing the cancel quickly enough. I would suspect a lot of processing is occurring below the TIMI and the cancel is not handled until that processing is completed.

  • John Eberhard John Eberhard committed [r4231]

    JDBC: Report warnings from prepare

  • John Eberhard John Eberhard committed [r4230]

    Misc: Code cleanup

  • John Eberhard John Eberhard modified ticket #452

    Illegal AccessError in Graphical Toolkit with Java 9

  • John Eberhard John Eberhard posted a comment on ticket #452

    The Graphical Toolkit (jui400.jar) is not part of the open source JTOpen. Only the binary jar file is included in the jtopen.zip file. You will need to contact IBM i service to get support for jui400.jar.

  • John Eberhard John Eberhard modified ticket #451

    AS400FileRecordDescription.retrieveRecordFormat does not support CLOB types

  • John Eberhard John Eberhard committed [r4218]

    JDBC: AS400JDBCArray fixes

  • John Eberhard John Eberhard committed [r4217]

    Trace: Remove public read access from trace file

  • John Eberhard John Eberhard modified ticket #442

    Jobs ELAPSED_CPU_PERCENT_USED discrepancy

  • John Eberhard John Eberhard modified ticket #449

    Varchar parameter and pcml v7 support in ProgramCallDocument

  • John Eberhard John Eberhard modified ticket #450

    Data type mismatch. (P#=1) testDataTruncation(AS400JDBCConnectionImpl.java:6141)

  • John Eberhard John Eberhard posted a comment on ticket #450

    So, the problem is that when a parameter marker is used, then the JDBC driver has to convert the long value to the type of the parameter marker, in this case a NUMERIC(9). In this case, the number cannot be converted so an error is thrown. If it were to be converted to a different value, say just 999999999, it is then possible for the query to return a wrong answer. In your example, where the database does not throw an error, the database is converting both EXAMPLECOLUMN and 1234567890 to types that...

  • John Eberhard John Eberhard posted a comment on ticket #450

    If the long value passed is > 999999999 then the exception is correct. A value larger than 999999999 cannot be converted to a NUMERIC(9). What is the long value being passed to setLong?

  • John Eberhard John Eberhard posted a comment on ticket #450

    Can you provide a recreate with the column definitions and the value that is being set?

  • John Eberhard John Eberhard created ticket #448

    SequentialFile.setRecordFormat() fails on DDS BINCHAR

  • John Eberhard John Eberhard modified ticket #447

    DatabaseMetaData.getTables returns Systemtables

  • John Eberhard John Eberhard posted a comment on ticket #447

    The problem is the Q_ table isn't a "SYSTEM TABLE", it's a user table, but a temporary user table created by the system during the truncation operation. Your program that is looking at the tables needs to handle the case where a table is dropped between the time of the getTables call and the time that the program attempts to access the table.

  • John Eberhard John Eberhard posted a comment on ticket #445

    One more thing. You should not be defining os.name when starting the JVM, as that will produce the behavior you are seeing. $ /QOpenSys/pkgs/lib/jvm/openjdk-11/bin/java -Dos.name=OS/400 -jar /qibm/proddata/os400/jt400/lib/java9/jt400.jar jdbc:as400:localhost eberhard tim8soup java.lang.NullPointerException at com.ibm.as400.access.PortMapper.getServerSocket(PortMapper.java:143) at com.ibm.as400.access.PortMapper.getServerSocket(PortMapper.java:129) at com.ibm.as400.access.AS400ImplRemote.signonConnect(AS400ImplRemote.java:3390)...

  • John Eberhard John Eberhard posted a comment on ticket #445

    Are you passing a userid and password? Since the native optimizations are not available, you need to connect using a userid and password.

  • John Eberhard John Eberhard committed [r4216]

    JDBC: AS400JDBCArray fixes

  • John Eberhard John Eberhard committed [r4215]

    JDBC: Fix float array conversion

  • John Eberhard John Eberhard modified ticket #445

    jt400.jar and Java 11 from IBM i OSS

  • John Eberhard John Eberhard posted a comment on ticket #445

    The change of name is actually desirable. The problem is that the OSS JVM does not have support for ILE native methods. So, many of the native methods used by JTOpen are not available. JTOpen should still work, it will just act like any other client running on a standard JVM. It's just that native optimizations will not be available. I know the OSS team was going to look for a way to allow some native optimizations to work and they were planning on contributing those changes back.

  • John Eberhard John Eberhard modified ticket #446

    [Info] client ILE debugger

  • John Eberhard John Eberhard posted a comment on ticket #446

    Sorry, we don't have any idea how the ILE debugger works.

  • John Eberhard John Eberhard committed [r4213]

    JDBC:Type conversion fixes

  • John Eberhard John Eberhard committed [r4210]

    JDBC: ResultSet update method fixes

  • John Eberhard John Eberhard committed [r4209]

    JDBC: ResultSet update method fixes

  • John Eberhard John Eberhard committed [r4208]

    JDBC: jdbcClient array fixes

  • John Eberhard John Eberhard committed [r4207]

    Build: PCML fixes

  • John Eberhard John Eberhard committed [r4206]

    Build: Fix all8 target to not build base jt400.jar

1 >
MongoDB Logo MongoDB