Oracle XStream setup with RAC

139 views
Skip to first unread message

Aqhil Mohammad

unread,
Feb 18, 2026, 9:21:10 AMFeb 18
to debezium
Hi All,

I have some queries. Hope I expect some clarification.

1) We are trying to setup Oracle Xstream with RAC having SCAN address, can we use "database.url" so we can mention Primary and Standy cluster SCAN address respectively. Could let me know if I can mention like below ?
database.url": "jdbc:oracle:thin:@(DESCRIPTION="
      + "(ADDRESS_LIST="
      + "  (ADDRESS=(PROTOCOL=TCP)(HOST=scan1.grp.net)(PORT=1521))"
      + "  (ADDRESS=(PROTOCOL=TCP)(HOST=scan2.grp.net)(PORT=1521))"
      + ")"
      + "(CONNECT_DATA=(SERVICE_NAME=XSTREAM_SVC)))",
2)  We are using Terraform, can I use this docker image 
https://hub.docker.com/r/debezium/connect. Because latest version is 3.4 on the document but I do not see 3.4 version on docker hub. Can you provide the latest docker image version for oracle connector
3) While using RAC does it handle node failover when DB switches from Node1 to Node2, I hope it does.

Thanks,
Akhil Mohammad.

Chris Cranford

unread,
Feb 18, 2026, 9:34:44 AMFeb 18
to debe...@googlegroups.com
Hi -

You can use the `database.url` configuration property; however, when using TNS configuration, if I recall FAILOVER=ON and LOAD_BALANCE=OFF must be set.  

As for images, Debezium has not published images to DockerHub since the end of the 2.x release stream.  All container images are published to quay.io. Please see this blog post [1] for all the details.

Lastly wrt to when the service transitions from Node1 to Node2, it's important to make sure that XStream's RAC configuration is setup with use_rac_service=Y. This should make sure that when the service migrates across nodes, the Oracle JDBC driver will be able to negotiate and resolve to the right SCAN address.

Hope that helps.
-cc

[1]: https://debezium.io/blog/2024/09/18/quay-io-reminder/
--
You received this message because you are subscribed to the Google Groups "debezium" group.
To unsubscribe from this group and stop receiving emails from it, send an email to debezium+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/debezium/3471a94c-9686-4bb5-9f1a-0cf99551ef7fn%40googlegroups.com.

Aqhil Mohammad

unread,
Feb 18, 2026, 9:55:35 AMFeb 18
to debezium
Hello Chris,

Thanks for the update. Yes can see now on  quay.io 

Yes for oracle service we will set  use_rac_service=Y

1) Can you let me know if we can use Debezium oracle xstream for Production or has it been tired by others ?
2) For the connector configuration, I don't see database.service.name which was used in confluent xstream connector. Though it uses same Debezium framework. In that sense I don't see the need to use database.service.name for Debezium xstream isn't ?

Chris Cranford

unread,
Feb 18, 2026, 10:00:44 AMFeb 18
to debe...@googlegroups.com
Hi, 

1. Yes you can use it in production.
2. There is no `database.service.name`, you supply that information using either `database.hostname` or `database.url` depending on your needs.

-cc

Aqhil Mohammad

unread,
Feb 18, 2026, 10:03:34 AMFeb 18
to debezium
Excellent Chris,

Thanks for the confirmation, will setup and comeback if I'm stuck.

Aqhil Mohammad

unread,
Feb 18, 2026, 11:01:32 AMFeb 18
to debezium
Hello,

Regarding DB Pre-requisites, can we follow below doc, as it has clear instructions 



As both follow almost same steps.

Aqhil Mohammad

unread,
Feb 19, 2026, 12:03:49 PMFeb 19
to debezium
Hello Chris,

Wanted to check, does Debezium provides (Red Hat) provides professional support on xstream connector ?

Chris Cranford

unread,
Feb 19, 2026, 12:23:34 PMFeb 19
to debe...@googlegroups.com
Hi,

Yes, support for XStream officially begins early April 2026. So if you're interested, now is a great time to reach out.

-cc

Aqhil Mohammad

unread,
Feb 19, 2026, 3:45:25 PMFeb 19
to debezium
Hello,

We are trying to set up at the first. Bu eventually would be interested going forward. Can you provide the medium to reach out on the support model.  

Aqhil Mohammad

unread,
Feb 20, 2026, 6:36:30 AMFeb 20
to debezium
Hello Chris,

Can you provide Price/Quotation for xstream.

Aqhil Mohammad

unread,
Feb 23, 2026, 5:20:26 AMFeb 23
to debezium
Hello Chris,

Can you let me know the support model, whom to reach out ?

Chris Cranford

unread,
Feb 23, 2026, 5:58:17 AMFeb 23
to debe...@googlegroups.com
Hi,

You can contact a Red Hatter here [1] about Red Hat Application Foundations, which includes the Red Hat build of Debezium.

-cc

[1]: https://www.redhat.com/en/products/application-foundations

Aqhil Mohammad

unread,
Mar 19, 2026, 5:31:18 AMMar 19
to debezium
Hello Chris,

I have installed xstream, though fixed few issues. Now before starting the connector getting the error.

Caused by: java.sql.SQLRecoverableException: ORA-12514: Cannot connect to database. Service DCEX0016 is not registered with the listener at host 10.146..***.*** port 1809. (CONNECTION_ID=TVjXTV3mAAHgYwoBNQoDsw==)
Help: https://docs.oracle.com/error-help/db/ora-12514/

        at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:1319)
        at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:1208)
        at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:782)
        at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:1178)
        at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:89)
        at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:52)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:887)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:694)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at io.debezium.jdbc.JdbcConnection.lambda$patternBasedFactory$0(JdbcConnection.java:198)
        at io.debezium.jdbc.JdbcConnection$ConnectionFactoryDecorator.connect(JdbcConnection.java:136)
        at io.debezium.jdbc.JdbcConnection.establishConnection(JdbcConnection.java:917)
        at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:901)
        at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:895)
        at io.debezium.jdbc.JdbcConnection.createStatementFromFactory(JdbcConnection.java:1572)
        at io.debezium.jdbc.JdbcConnection.queryAndMap(JdbcConnection.java:643)
        at io.debezium.jdbc.JdbcConnection.queryAndMap(JdbcConnection.java:518)
        at io.debezium.connector.oracle.OracleConnection.resolveOracleDatabaseVersion(OracleConnection.java:162)
        ... 8 more
[2026-03-19 09:16:00,342] ERROR Failed testing connection for {connector.class=io.debezium.connector.oracle.OracleConnector, errors.log.include.messages=true, value.converter.schema.registry.ssl.key.password=********, topic.creation.default.partitions=1, value.converter.schema.registry.ssl.keystore.password=********, topic.heartbeat.prefix=stc-heartbeat-risp, errors.deadletterqueue.context.headers.enable=true, schema.history.internal.producer.security.protocol=SSL, schema.history.internal.consumer.ssl.key.password=********, schema.history.internal.producer.ssl.truststore.password=********, topic.creation.default.replication.factor=1, errors.deadletterqueue.topic.replication.factor=1, schema.history.internal.consumer.ssl.keystore.password=********, errors.log.enable=true, key.converter=org.apache.kafka.connect.json.JsonConverter, database.dbname=DCEX0016, database.user=stc_connect_user, schema.history.internal.consumer.ssl.keystore.location=/mnt/sslcerts/keystore.p12, heartbeat.interval.ms=300000, schema.history.internal.kafka.bootstrap.servers=b0.dev-k4a.recp-da-kafka-dev.shared.banksvcs.net:9093,b1.dev-k4a.recp-da-kafka-dev.shared.banksvcs.net:9093,b2.dev-k4a.recp-da-kafka-dev.shared.banksvcs.net:9093, topic.creation.groups=stc, schema.history.internal.producer.ssl.key.password=********, topic.creation.enable=false, key.converter.schemas.enable=false, value.converter.schema.registry.url=https://schemaregistry.dev-k4a.recp-da-kafka-dev.shared.banksvcs.net, errors.deadletterqueue.topic.name=stc-dbz-risp-dlq, database.password=********, name=stc-dbz-poc-connector, schema.history.internal.producer.ssl.keystore.location=/mnt/sslcerts/keystore.p12, value.converter.schemas.enable=false, errors.tolerance=all, snapshot.mode=no_data, schema.history.internal.consumer.security.protocol=SSL, tasks.max=1, value.converter.schema.registry.ssl.truststore.password=********, tombstones.on.delete=false, topic.prefix=stc-dbz-xstream, decimal.handling.mode=string, schema.history.internal.consumer.ssl.truststore.location=/mnt/sslcerts/truststore.p12, schema.history.internal.kafka.topic=stc-dbz-xstream-schema-history, value.converter.schema.registry.ssl.keystore.location=/mnt/sslcerts/keystore.p12, database.out.server.name=XOUT_DBZ, value.converter=org.apache.kafka.connect.json.JsonConverter, schema.history.internal.producer.ssl.keystore.password=********, value.converter.schema.registry.ssl.truststore.location=/mnt/sslcerts/truststore.p12, database.connection.adapter=xstream, database.pdb.name=DOEX0016A, schema.history.internal.consumer.ssl.truststore.password=********, database.port=1809, max.request.size=2000000, topic.delimiter=-, database.hostname=mmcac05d1381s0.server.banksvcs.net, schema.history.internal.producer.ssl.truststore.location=/mnt/sslcerts/truststore.p12, table.include.list=risp.dlv_monitoring,risp.isv_param}with user '[database.user,null,[],[],true]' (io.debezium.connector.oracle.OracleConnector:94)
org.apache.kafka.connect.errors.RetriableException: Failed to resolve Oracle database version
        at io.debezium.connector.oracle.OracleConnection.resolveOracleDatabaseVersion(OracleConnection.java:193)
        at io.debezium.connector.oracle.OracleConnection.getOracleVersion(OracleConnection.java:151)
        at io.debezium.connector.oracle.OracleConnector.lambda$validateConnection$0(OracleConnector.java:88)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at io.debezium.util.Threads$3.lambda$newThread$0(Threads.java:314)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLRecoverableException: ORA-12514: Cannot connect to database. Service DCEX0016 is not registered with the listener at host 10.146.***.*** port 1809. (CONNECTION_ID=TVjXTV3mAAHgYwoBNQoDsw==)
Help: https://docs.oracle.com/error-help/db/ora-12514/

        at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:1319)
        at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:1208)
        at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:782)
        at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:1178)
        at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:89)
        at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:52)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:887)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:694)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at io.debezium.jdbc.JdbcConnection.lambda$patternBasedFactory$0(JdbcConnection.java:198)
        at io.debezium.jdbc.JdbcConnection$ConnectionFactoryDecorator.connect(JdbcConnection.java:136)
        at io.debezium.jdbc.JdbcConnection.establishConnection(JdbcConnection.java:917)
        at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:901)
        at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:895)
        at io.debezium.jdbc.JdbcConnection.createStatementFromFactory(JdbcConnection.java:1572)
        at io.debezium.jdbc.JdbcConnection.queryAndMap(JdbcConnection.java:643)
        at io.debezium.jdbc.JdbcConnection.queryAndMap(JdbcConnection.java:518)
        at io.debezium.connector.oracle.OracleConnection.resolveOracleDatabaseVersion(OracleConnection.java:162)
        ... 8 more

Here is the connector configuration.

Spec:
  Class:  io.debezium.connector.oracle.OracleConnector
  Configs:
    database.connection.adapter:                               xstream
    database.dbname:                                           DCEX**
    database.hostname:                                         mmcac05d***net
    database.out.server.name:                                  XOUT_DBZ
    database.password:                                         *****
    database.pdb.name:                                         DOEX**
    database.port:                                             1809
    database.user:                                             stc_connect_user
    decimal.handling.mode:                                     string
    errors.deadletterqueue.context.headers.enable:             true
    errors.deadletterqueue.topic.name:                         stc-dbz-risp-dlq
    errors.deadletterqueue.topic.replication.factor:           1
    errors.log.enable:                                         true
    errors.log.include.messages:                               true
    errors.tolerance:                                          all
    heartbeat.interval.ms:                                     300000
    key.converter:                                             org.apache.kafka.connect.json.JsonConverter
    key.converter.schemas.enable:                              false
    max.request.size:                                          2000000
    schema.history.internal.consumer.security.protocol:        SSL
    schema.history.internal.consumer.ssl.key.password:         ******
    schema.history.internal.consumer.ssl.keystore.location:    /mnt/sslcerts/keystore.p12
    schema.history.internal.consumer.ssl.keystore.password:    ******
    schema.history.internal.consumer.ssl.truststore.location:  /mnt/sslcerts/truststore.p12
    schema.history.internal.consumer.ssl.truststore.password:  ******
    schema.history.internal.kafka.bootstrap.servers:           b0.dev-******.net:9093,b1.dev-******.net:9093,b2.dev-******.net:9093
    schema.history.internal.kafka.topic:                       stc-dbz-xstream-schema-history
    schema.history.internal.producer.security.protocol:        SSL
    schema.history.internal.producer.ssl.key.password:         ******
    schema.history.internal.producer.ssl.keystore.location:    /mnt/sslcerts/keystore.p12
    schema.history.internal.producer.ssl.keystore.password:    ******
    schema.history.internal.producer.ssl.truststore.location:  /mnt/sslcerts/truststore.p12
    schema.history.internal.producer.ssl.truststore.password:  ******
    snapshot.mode:                                             no_data
    table.include.list:                                        risp.dlv_monitoring,risp.isv_param
    tombstones.on.delete:                                      false
    topic.creation.default.partitions:                         1
    topic.creation.default.replication.factor:                 1
    topic.creation.enable:                                     false
    topic.creation.groups:                                     stc
    topic.delimiter:                                           -
    topic.heartbeat.prefix:                                    stc-heartbeat-risp
    topic.prefix:                                              stc-dbz-xstream
    value.converter:                                           org.apache.kafka.connect.json.JsonConverter
    value.converter.schema.registry.ssl.key.password:          ******
    value.converter.schema.registry.ssl.keystore.location:     /mnt/sslcerts/keystore.p12
    value.converter.schema.registry.ssl.keystore.password:     ******
    value.converter.schema.registry.ssl.truststore.location:   /mnt/sslcerts/truststore.p12
    value.converter.schema.registry.ssl.truststore.password:   ******
    value.converter.schema.registry.url:                       https://schemaregistry.*****.net
    value.converter.schemas.enable:                            false
  Connect Cluster Ref:
    Name:    dbz-connect-cluster
  Task Max:  1
Status:
  App State:  Failed
  Conditions:
    Last Probe Time:       2026-03-18T12:42:50Z
    Last Transition Time:  2026-03-18T12:42:50Z
    Message:               connect Rest API request failed: Connector configuration is invalid and contains the following 1 error(s):
Unable to connect: Failed to resolve Oracle database version
You can also find the above list of errors at the endpoint `/connector-plugins/{connectorType}/config/validate` (400)
    Reason:               UpdateFailed
    Status:               False
    Type:                 platform.confluent.io/app-ready
  Connect Rest Endpoint:  https://dbz-connect-cluster.dbz-connect-cluster.svc.cluster.local:8083
  Connector State:        RUNNING
  Failed Tasks:
    task-0:
      Id:               0
      Retry Count:      10
      Worker ID:        dbz-connect-cluster-1.dbz-connect-cluster.dbz-connect-cluster.svc.cluster.local:8083
  Failed Tasks Count:   1
  Kafka Cluster ID:     YGTL-peLQIeAIy9hwXCoHg
  Observed Generation:  2
  Restart Policy:
    Max Retry:  10
    Type:       OnFailure
  State:        ERROR
  Tasks Ready:  0/1
  Worker ID:    dbz-connect-cluster-1.dbz-connect-cluster.dbz-connect-cluster.svc.cluster.local:8083
Events:
  Type     Reason   Age                      From       Message
  ----     ------   ----                     ----       -------
  Warning  Warning  5m43s (x136 over 6h11m)  connector  connect Rest API request failed: Connector configuration is invalid and contains the following 1 error(s):
Unable to connect: Failed to resolve Oracle database version
You can also find the above list of errors at the endpoint `/connector-plugins/{connectorType}/config/validate` (400)

With the database.connection.adapter:  xstream

we can't use database.hostname and database.port and have to rely on database.url ?

Chris Cranford

unread,
Mar 19, 2026, 6:54:27 AMMar 19
to debe...@googlegroups.com
Hi -

You can use either database.url or database.hostname, just not both. Typically with XStream users prefer `database.url` as you can specify other characteristics for the Oracle JDBC driver to natively handle when the XStream service stops on one Oracle RAC node and is restarted on another. But the error in this case is related to the fact that the `database.dbname` you're specifying in the configuration is not registered with the database's TNS listener. This happens when you're attempting to connect using the SID but the DBA has only exposed the SERVICE_NAME or you're connecting using the SERVICE_NAME and only the SID is exposed. 

-cc

Aqhil Mohammad

unread,
Mar 23, 2026, 12:47:24 PMMar 23
to debezium
Hello Chris,

It's working with  database.url.

   I have query, while creating XStream Administrator user & user, we have created tablespaces both in CDB and PDB as per the requirement.

But when the PDB service name provided it, it failed with below error. It is important to use PDB Service name because During DR event, it'll be consistent and CDB service name will differ.

**Error:**
```
oracle.streams.StreamsException: ORA-26913: must connect to instance 1 where XStream Outbound server "XOUT_DBZ" is running
```

**Root Cause:** XStream outbound server `XOUT_DBZ` is pinned to RAC instance 1. The service `DCEX****.net` runs on both instance 1 and instance 2. When the listener load-balances the connection to instance 2, XStream attach fails.

**Fix:** Used CDB service name `DCEX****.net` with full TNS descriptor format including `ENABLE=broken`:
```
jdbc:oracle:oci:@(DESCRIPTION=(ENABLE=broken)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=port)))(CONNECT_DATA=(SERVICE_NAME=DCEX0****.net)))
```

**Note:** PDB service name `DCEX0016_DOEX0016A.paas.oracle.com` cannot be used — `XOUT_DBZ` is defined at CDB level (`CDB$ROOT`), connecting via PDB service gives `ORA-26701: Streams process XOUT_DBZ does not exist`.

 
database.url: "jdbc:oracle:oci:@(DESCRIPTION=(ENABLE=broken)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={{ $v.hostname }})(PORT={{ $v.port }})))(CONNECT_DATA=(SERVICE_NAME={{ $v.dbServiceName }})))"

Chris Cranford

unread,
Mar 23, 2026, 1:11:49 PMMar 23
to debe...@googlegroups.com
Hi, I'm afraid this isn't Debezium-specific, the fact you must connect to the CDB rather than the PDB is a hard requirement from Oracle.

If I recall correctly, the DBA documentation for XStream from Oracle discusses setting up a custom service on both the primary and DR that use the same name. This way you connect to the XStream service name rather than your existing CDB services, so that during failover scenarios, the services properly resolve and avoid any manual connector configuration adjustments.

-cc

Aqhil Mohammad

unread,
Mar 23, 2026, 1:21:58 PMMar 23
to debezium
Thanks Chris,

Will check this option, if not we have to stick to the current setup for manual adjustment during the event. Do you re-call the documentation for it.

Chris Cranford

unread,
Mar 24, 2026, 11:04:03 AMMar 24
to debe...@googlegroups.com
I'm afraid I don't have the link handy more. 

Aqhil Mohammad

unread,
Apr 9, 2026, 9:32:29 AM (13 days ago) Apr 9
to debezium
Hello Chris,

I have performed test to start from specific SCN.

Steps Performed:

Queried current SCN before test inserts: SELECT CURRENT_SCN - 100 FROM V$DATABASE → 217140148

Inserted test records into risp.dlv_monitoring:

SCN_REPLAY_001
SCN_REPLAY_002

Confirmed both records appeared on Kafka topic — CDC working normally.

Stopped capture process CAP$_XOUT_DBZ_419 and repositioned to SCN 217140148 via DBMS_CAPTURE_ADM.ALTER_CAPTURE.

BEGIN DBMS_CAPTURE_ADM.STOP_CAPTURE(capture_name => 'CAP$_XOUT_DBZ_419'); END;
/

BEGIN
  DBMS_CAPTURE_ADM.ALTER_CAPTURE(
    capture_name => 'CAP$_XOUT_DBZ_419',
    start_scn    => 217140148
  );
END;
/

Restarted capture — confirmed STATUS: ENABLED, START_SCN: 217140148, CAPTURED_SCN: 217143046.

BEGIN DBMS_CAPTURE_ADM.START_CAPTURE(capture_name => 'CAP$_XOUT_DBZ_419'); END;
/

Repositioned XStream outbound server XOUT_DBZ to same SCN — confirmed STATUS: ATTACHED, START_SCN: 217140148.

Monitored Kafka topic — records did NOT replay.

Are my steps are correct to to start from specific SCN or something need to done ?

Chris Cranford

unread,
Apr 9, 2026, 9:50:13 AM (13 days ago) Apr 9
to debe...@googlegroups.com
Hi -

From the Oracle XStream side, your steps are fine. But you are not taking into account that offset positions are also maintained in the Kafka offset topic. So while you've repositioned the capture process to go back in time and requeue events, Debezium will request to start reading from the position in the Kafka offsets. So you need to also adjust the position in the Kafka offsets along with the Oracle XStream side in tandem.

Unfortunately, the LCR Position in the Kafka Offsets is an encoded value from Oracle, which consists of more than just an SCN number. The easiest way for you to roll back to a specific SCN would be when you modify the Kafka offsets, remove the `lcr_position` attribute and replace it with the `scn` attribute if it does not already exist, with the `scn` attribute set to the SCN value you used as the start_scn for the capture process.

The procedure to modify Kafka offsets can be found in our FAQ [1]. The steps are specific to MySQL, but can easily be adopted for Oracle using the information I shared above about `lcr_position` and `scn`.

Hope that helps.
Chris

[1]: https://debezium.io/documentation/faq/#how_to_change_the_offsets_of_the_source_database

Aqhil Mohammad

unread,
Apr 9, 2026, 10:00:36 AM (13 days ago) Apr 9
to debezium
Thanks Chris,

I deliberately didn't touch the Kafka topic offset. As I want to set from Debezium end, looks like Kafka Offset also needs to reset. Since IBM Oracle CDC does work without Kafka reset, thought it would work here to without reset of Kafka topic offset

Reply all
Reply to author
Forward
0 new messages