Migration Troubleshooting
After updating the client there are org.sqlite.SQLiteException exceptions being thrown coming from the DefaultNotificationReceiver
2025-08-11T18:55:35.885Z WARNING thread=8120 [{receiver}] exception while parsing URLNotification
org.sqlite.SQLiteException: [SQLITE_CONSTRAINT_NOTNULL] A NOT NULL constraint failed (NOT NULL constraint failed: index.tracker_url)
at org.sqlite.core.DB.newSQLException(DB.java:1135)
at org.sqlite.core.DB.newSQLException(DB.java:1146)
at org.sqlite.core.DB.execute(DB.java:941)
at org.sqlite.core.DB.executeUpdate(DB.java:1010)
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeLargeUpdate(JDBC3PreparedStatement.java:95)
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeUpdate(JDBC3PreparedStatement.java:81)
at gov.usgs.earthquake.distribution.JDBCNotificationIndex.addNotification(JDBCNotificationIndex.java:497)
In the newest version of the client, the tracker_url field was removed. This problem can be resolved with the following steps:
1. Stop the client
2. Locate the config section that defines the index of the receiver
The index is defined with the indexFile property
# Example receiver config
receivers = receiver_eids
[receiver_eids]
type = gov.usgs.earthquake.distribution.EIDSNotificationReceiver
alternateServers = prod02-pdl01.cr.usgs.gov:39977
indexFile = some/path/to/file.db
maxServerEventAgeDays = 7.0
storage = receiver_storage
serverHost = prod01-pdl01.cr.usgs.gov
serverPort = 39977
trackingfile = eids_tracking.dat
3. Rename (or remove) the file specified
4. Start the client
The client will recreate the file with the correct schema.
After updating the client there are org.sqlite.SQLiteException exceptions being thrown coming from the DefaultNotificationListener
2025-08-12T16:00:03.946Z INFO thread=66 [urn:usgs-product:source:type:code:updatetime Listener Task] Exception executing task
org.sqlite.SQLiteException: [SQLITE_CONSTRAINT_NOTNULL] A NOT NULL constraint failed (NOT NULL constraint failed: index.tracker_url)
at org.sqlite.core.DB.newSQLException(DB.java:1135)
at org.sqlite.core.DB.newSQLException(DB.java:1146)
at org.sqlite.core.DB.execute(DB.java:941)
at org.sqlite.core.DB.executeUpdate(DB.java:1010)
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeLargeUpdate(JDBC3PreparedStatement.java:95)
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeUpdate(JDBC3PreparedStatement.java:81)
at gov.usgs.earthquake.distribution.JDBCNotificationIndex.addNotification(JDBCNotificationIndex.java:497)
at gov.usgs.earthquake.distribution.DefaultNotificationListener.onAfterProcessNotification(DefaultNotificationListener.java:250)
at gov.usgs.earthquake.distribution.DefaultNotificationListener.onNotification(DefaultNotificationListener.java:144)
In the newest version of the client, the tracker_url field was removed. This problem can be resolved with the following steps:
1. Stop the client
2. Locate the config section that defines the index of the listener
The index is defined with the listenerIndexFile property
# Example listener config
listeners = indexer
[external_listener]
type = gov.usgs.earthquake.distribution.ExternalNotificationListener
listenerIndexFile = some/path/to/file.db
command = /bin/echo
storage = listener_storage
3. Rename (or remove) the file specified
4. Start the client
The client will recreate the file with the correct schema.
The logs are filled with Connection init error messages and I’m unable to receive products using an EIDSNotificationReceiver
[Warning] Connection init error: Error creating CORBA ORB or POA: org.omg.CORBA.INITIALIZE: Unable to initialize orb loader (java.lang.ExceptionInInitializerError)
org.omg.CORBA.INITIALIZE: Unable to initialize orb loader (java.lang.ExceptionInInitializerError)
at org.openorb.orb.core.ORB.set_parameters(ORB.java:1127)
at org.omg.CORBA.ORB.init(ORB.java:296)
at com.isti.openorbutil.OrbManager.initImplementation(OrbManager.java:260)
at com.isti.openorbutil.OrbManager.initImplementation(OrbManager.java:311)
at com.isti.quakewatch.util.QWCorbaConnector$EventChannelConnectThread.connect(QWCorbaConnector.java:1311)
at com.isti.quakewatch.util.QWCorbaConnector$EventChannelConnectThread.run(QWCorbaConnector.java:1197)
Caused by: java.lang.ExceptionInInitializerError
at org.openorb.orb.config.OpenORBLoader.<clinit>(OpenORBLoader.java:64)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
This issue occurs when an EIDSNotificationReceiver is configured. With the update to Java 17, the following --add-opens
flag must be added to the Java command in order for this type of receiver to work
1
java --add-opens java.base/java.lang=ALL-UNNAMED -jar ProductClient.jar --receive
Requests for new IP addresses added to the onprem hub allowlist
At this time new IP addresses are not being added to onprem hubs as they are soon to be deprecated. Contributors should focus efforts on updating to receive from the new Cloud, realtime system.
Deprecation of the trackerUrl
If you use a database for storage or indexes and updated to version 3+, you may receive the error message Field 'trackerURL' doesn't have a default value. The trackerUrl has been deprecated. This can be fixed via the following options:
- Alter MySql tables with a trackerUrl column to give the trackerUrl a default value or allow it to be null.
- Drop the trackerUrl column in MySql tables that contain it.
For sqlite databases, SQLiteStudio may be a convenient tool to update your databases schema.
SQL statements can also be use to add defaults:
DROP PROCEDURE IF EXISTS createDefaultTrackerUrl;
CREATE PROCEDURE createDefaultTrackerUrl()
BEGIN
ALTER TABLE productSummary ALTER trackerURL SET DEFAULT 'data:,';
END;
CALL createDefaultTrackerUrl();
DROP PROCEDURE IF EXISTS createDefaultTrackerUrl;
Last modified: Thurs Sep 19 16:26:41 UTC 2025