I am using a Test Container for integration testing that needs a database. I have done this the MSSQL before it and worked fine but this is the first time I tried to use it with DB2.
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>db2</artifactId>
<version>1.15.0</version>
<scope>test</scope>
</dependency>
I have the setup like this:
@BeforeClass
public static void setUpClass() {
db2Container = new Db2Container("ibmcom/db2")
.acceptLicense()
.withDatabaseName("testDb2")
.withUsername("username")
.withPassword("password")
.withInitScript("initDB2.sql");
db2Container.start();
System.setProperty("general.datasource.jbhdb2p.jdbc-url", db2Container.getJdbcUrl());
System.setProperty("general.datasource.jbhdb2p.username", db2Container.getUsername());
System.setProperty("general.datasource.jbhdb2p.password", db2Container.getPassword());
}
I have not done a test container with DB2 before so I am not sure of the desired logs but it seems fine up until it starts looping these 3 lines forever:
10:10:18.569 [main] DEBUG org.testcontainers.shaded.com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: 2331d2432c59900608324d8fe471d4e6fec3a6c337ebdf8bb0c532d361a07b66,false
10:10:18.570 [main] DEBUG org.testcontainers.shaded.com.github.dockerjava.core.exec.InspectContainerCmdExec - GET: DefaultWebTarget{path=[/containers/2331d2432c59900608324d8fe471d4e6fec3a6c337ebdf8bb0c532d361a07b66/json], queryParams={}}
10:10:18.578 [main] DEBUG [ibmcom/db2:latest] - Trying to create JDBC connection using com.ibm.db2.jcc.DB2Driver to jdbc:db2://localhost:49193/testDb2 with properties: {password=password, user=username}
Here is the logs before the loop starts:
10:08:19.692 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Previous setup has not been detected. Creating the users...
10:08:19.692 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Creating users ...
10:08:19.837 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Creating instance ...
10:08:20.906 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:20.907 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DB2 installation is being initialized.
10:08:23.322 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:23.322 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Total estimated time for all tasks to be performed: 309 second(s)
10:08:23.322 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Total number of tasks to be performed: 4
10:08:23.337 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Estimated time 1 second(s)
10:08:23.337 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Description: Setting default global profile registry variables
10:08:23.337 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Task #1 start
10:08:23.359 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:23.359 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Task #1 end
10:08:23.383 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Estimated time 5 second(s)
10:08:23.383 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Description: Initializing instance list
10:08:23.383 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Task #2 start
10:08:23.965 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:23.965 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Task #2 end
10:08:23.979 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Estimated time 300 second(s)
10:08:23.979 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Description: Configuring DB2 instances
10:08:23.979 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Task #3 start
10:08:39.070 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Task #3 end
10:08:39.070 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:39.091 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:39.091 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: The execution completed successfully.
10:08:39.091 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:39.091 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Task #4 end
10:08:39.091 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Estimated time 3 second(s)
10:08:39.091 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Description: Updating global profile registry
10:08:39.091 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Task #4 start
10:08:40.739 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:40.739 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:40.739 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DBI1070I Program db2icrt completed successfully.
10:08:40.739 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:40.739 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:40.739 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DBI1446I The db2icrt command is running.
10:08:40.739 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: For more information see the DB2 installation log at "/tmp/db2icrt.log.71".
10:08:40.910 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: SQL1032N No start database manager command was issued. SQLSTATE=57019
10:08:40.910 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: 07/02/2021 14:08:41 0 0 SQL1032N No start database manager command was issued.
10:08:43.018 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Cataloging existing databases
10:08:43.040 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Applying Db2 license ...
10:08:43.040 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDERR: ls: cannot access /database/data/sa/NODE0000: No such file or directory
10:08:43.113 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:43.113 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: LIC1402I License added successfully.
10:08:43.113 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: LIC1426I This product is now licensed for use as outlined in your License Agreement. USE OF THE PRODUCT CONSTITUTES ACCEPTANCE OF THE TERMS OF THE IBM LICENSE AGREEMENT, LOCATED IN THE FOLLOWING DIRECTORY: "/opt/ibm/db2/V11.5/license/en_US.iso88591"
10:08:43.113 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:43.114 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:43.134 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Updating DBM CFG parameters ...
10:08:43.134 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Saving the checksum of the current nodelock file ...
10:08:44.528 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
10:08:44.530 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: successfully.
10:08:45.636 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: successfully.
10:08:45.636 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
10:08:46.731 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: successfully.
10:08:46.732 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
10:08:46.752 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Remounting /database with suid...
10:08:46.752 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: No Cgroup memory limit detected, instance memory will follow automatic tuning
10:08:51.381 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Code level is the same. No update/upgrade needed.
10:08:51.381 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Nothing appears in the Db2 directory. will skip update/upgrade.
10:08:51.440 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DB2 State : Operable
10:08:51.440 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:51.463 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT:
10:08:51.463 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: Starting DB2...
10:08:51.463 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DB2 has not been started
10:08:53.379 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: SQL1063N DB2START processing was successful.
10:08:53.379 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: 07/02/2021 14:08:53 0 0 SQL1063N DB2START processing was successful.
10:08:53.394 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Creating database testDb2 ...
10:08:53.394 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) User chose to create testDb2 database
10:10:15.143 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DB20000I The CREATE DATABASE command completed successfully.
10:10:16.771 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DB20000I The ACTIVATE DATABASE command completed successfully.
10:10:16.782 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Instance and database will not be auto configured. AUTOCONFIG has been set to false.
10:10:16.782 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Log archiving will not be configured as ARCHIVE_LOGS has been set to false.
10:10:18.307 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Skipping TEXT_SEARCH setup for database testDb2 because TEXT_SEARCH is not configured for the instance ...
10:10:18.519 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: ssh-keygen: generating new host keys: RSA2 RSA DSA ECDSA ED96529
10:10:18.534 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: 2
10:10:18.534 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DATA #10: unsigned integer, 8 bytes
10:10:18.534 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: 2
10:10:18.534 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DATA #9 : unsigned integer, 8 bytes
10:10:18.534 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: 4
10:10:18.534 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DATA #8 : signed integer, 4 bytes
10:10:18.535 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: 4
10:10:18.535 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DATA #7 : signed integer, 4 bytes
10:10:18.535 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: 8
10:10:18.535 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: DATA #6 : signed integer, 4 bytes
10:10:18.535 [main] DEBUG org.testcontainers.containers.output.WaitingConsumer - STDOUT: (*) Setup has completed.
10:10:18.537 [main] INFO [ibmcom/db2:latest] - Container ibmcom/db2:latest started in PT2M2.3332179S
10:10:18.545 [main] INFO org.testcontainers.ext.ScriptUtils - Executing database script from initDB2.sql
I found a repository that had a DB2 integration test already written in it and tried to clone and run it on my machine. It gave the same logs as the one I tried to create. This makes me thing my issue may be a docker/IDE issue rather than a code issue.
Can anyone gather enough info from these logs to guide me in a direction? Thanks!