Skip to content

When another Java-based service updates Oracle tables, the changes are not being detected by my subscription mechanism. #1672

@siisiooy

Description

@siisiooy
  1. What versions are you using?
 "node-oracledb": "^1.0.2",
 "oracledb": "^6.3.0",
 "@nestjs/typeorm": "^10.0.2",
  1. Describe the problem

I'm encountering an issue with subscribing to Oracle table changes using Nest.js. When another Java-based service updates Oracle tables, the changes are not being detected by my subscription mechanism. A dditionally, in my local testing environment, using a visual tool to directly modify the tables, only the first change triggers the subscription event. Subsequent changes do not trigger the event unless I completely close the visual tool and reopen it before making another update.

  1. Include a runnable Node.js script that shows the problem.
async onModuleInit() {
    try {
      const { username, password, host, port, serviceName, database, connectString } = config;
      oracledb.initOracleClient();

      this.oracleConnection = await oracledb.getConnection({
        user: username,
        password,
        connectString,
        events: true,
      });

      async function handleTableChanges(message) {
        console.log('Table changes:', message.tables);
      }

      const options = {
        sql: `SELECT * FROM ${database}.LIM_TABLE`,
        callback: handleTableChanges,
        clientInitiated: false,
      };

      console.log('Subscribing oracle options: ', options);
      await this.oracleConnection.subscribe(
        'lims_changes',
        options,
      );
    } catch (error) {
      this.logger.error(error);
    }
  }

Metadata

Metadata

Assignees

No one assigned

    Labels

    inactiveThis was marked by stalebot as inactivequestion

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions