Working


Replication resources can be manually started individually through a command-line utility, or they can be automatically started all at once through the DRX service that you staged during installation.

Service

Follow the service control commands provided by the OS.

Since DRX 1.4, the DRX service name has been changed from DRXSVC to DRX. In the examples described below, rename the drxsvc service to drx.

Startup

Windows
c:\>sc start drxsvc 
Linux
# CentOS 7 
[root@node1 ~]# systemctl start drxsvc
# CentOS 6
[root@node1 ~]# service drxsvc start 

Inquery

Use the service control command to check the status of the drxsvc service.

Windows

sc query drxsvc

Linux

<CentOS 6.x>

service drxsvc status 


<CentOS 7.x>

systemctl status drxsvc 



Stop

Windows
c:\>sc stop drxsvc 
Linux
# CentOS 7 
[root@node1 ~]# systemctl stop drxsvc
# CentOS 6
[root@node1 ~]# service drxsvc stop

Watchdog

The DRX service embeds a DRX watchdog to manage the DRX process. The watchdog will restart DRX if it detects an abnormal termination of a DRX process in the following situations

  • If the DRX process is terminated unexpectedly.
  • DRX is shut down using the "drx-ctl shutdown" command.

Restarts by these watchdogs are always written to the DRX log for history.

Because the DRX process is automatically restarted by the watchdog when it is terminated under normal circumstances, the only way to completely terminate the DRX process is by stopping the DRX service.

To start DRX without a watchdog, you must start DRX in foreground mode.

Resource

To control resources individually, you should use the up/down commands of drx-ctl. You can also start/stop all resources with the all option of drx-ctl.

DRX resources are resources that mediate replication connections. They are functionally different from replication resources and should not be confused. For example, bsradm up is a command to start a replication resource, while drx-ctl up is a command to start brokering a replication connection.

Procedurally, it is recommended to perform drx-ctl up followed by bsradm up. Having a DRX brokered channel ready in advance and establishing a replicated connection on both nodes is a good idea to reduce connection latency.

Startup

Commands to start an intermediary connection.

drx-ctl up [resource or all]

Stop

Command to stop an intermediary connection.

drx-ctl down [resource or all]

Autostart

DRX resources are automatically started by the DRX service startup. However, sometimes you may want to prevent resources from being started automatically by the service. The following configuration file settings can be used to prevent resources from starting automatically when the service starts.

resource r0 {
    proxy {
        plugin {
            svc-autostart no;
        }
    }
}

Inquery

The following is a description of the drx-ctl commands that query the status and information of replication resources.

The commands default to resources, but some specify just the connection name without resources.

The console output is in Kilo Bytes and is omitted.


Settings

DRX's settings can be applied by directly changing the contents of the configuration file, or by using the drx-ctl set command.

DRX does not provide commands to modify resource files or apply changes to files to change settings. Modifying a resource file is subject to manual intervention by the user.

Static Settings

You manually change the contents of the bsr.conf and drx.conf configuration files and restart the resource with the adjust command to take effect.

CommandDescriptionOutput sample
drx-ctl adjust [resource or all] Update Settings, restart resources
adjust
[root@c73-p1 bsr.d]# drx-ctl adjust all
DR-1-3-c73-p2-c73-p1: up.
DR-2-3-c73-p2-c73-p1: up.
Result: 2 resource(s) updated.

[root@c73-p1 bsr.d]#

Dynamic Settings

The drx-ctl set command allows you to change settings in real-time during operation. The set command does not reflect the contents of the actual resource configuration file, so it can be said to be a temporary setting, as it will revert to the configuration file's settings when drx is restarted.

CommandDescriptionOutput sample
drx-ctl set compress [type] [level] [connection name] 

Compression plugin settings

  • type
    • NONE 
    • ZLIB
    • LZ4
  • level: 1~9
set compress
< Set the compression plugin to LZ4 for resource r0 only >
[root@c73-p1 dgkim]# drx-ctl set compress lz4 1 DR-1-3-c73-p2-c73-p1
Result: 1 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:31:10.271886 t77473 DR-1-3-c73-p2-c73-p1:ad] Set compressor: LZ4
I1126 17:31:10.271918 t77473 DR-1-3-c73-p2-c73-p1:ad] Set compressor level: 1
I1126 17:31:10.271924 t77473 DR-1-3-c73-p2-c73-p1:cm] Set compressor: LZ4
I1126 17:31:10.271925 t77473 DR-1-3-c73-p2-c73-p1:cm] Set compressor level: 1


< Disable the compression plugin on resource R0 >
[root@c73-p1 dgkim]# drx-ctl set compress none 1 DR-1-3-c73-p2-c73-p1
DR-1-3-c73-p2-c73-p1: updated.
Result: 1 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:31:37.741765 t77473 DR-1-3-c73-p2-c73-p1:ad] Set compressor: NONE
I1126 17:31:37.741795 t77473 DR-1-3-c73-p2-c73-p1:ad] Set compressor level: 1
I1126 17:31:37.741800 t77473 DR-1-3-c73-p2-c73-p1:cm] Set compressor: NONE
I1126 17:31:37.741802 t77473 DR-1-3-c73-p2-c73-p1:cm] Set compressor level: 1



< Set the compression plugin for all (2) resources to LZ4 >
[root@c73-p1 dgkim]# drx-ctl set compress lz4 1 all
Result: 2 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:32:30.656067 t77473 DR-1-3-c73-p2-c73-p1:ad] Set compressor: LZ4
I1126 17:32:30.656089 t77473 DR-1-3-c73-p2-c73-p1:ad] Set compressor level: 1
I1126 17:32:30.656095 t77473 DR-1-3-c73-p2-c73-p1:cm] Set compressor: LZ4
I1126 17:32:30.656118 t77473 DR-2-3-c73-p2-c73-p1:am] Set compressor: LZ4
I1126 17:32:30.656096 t77473 DR-1-3-c73-p2-c73-p1:cm] Set compressor level: 1
I1126 17:32:30.656133 t77473 DR-2-3-c73-p2-c73-p1:am] Set compressor level: 1
I1126 17:32:30.656138 t77473 DR-2-3-c73-p2-c73-p1:cd] Set compressor: LZ4
I1126 17:32:30.656139 t77473 DR-2-3-c73-p2-c73-p1:cd] Set compressor level: 1

drx-ctl set crypto [on or off] [connection name] Encryption settings
set crypto
< Enable the encryption plugin for resource R0 only > 
[root@c73-p1 dgkim]# drx-ctl set crypto on DR-1-3-c73-p2-c73-p1
DR-1-3-c73-p2-c73-p1: updated.
Result: 1 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:10:10.611963 t77473 DR-1-3-c73-p2-c73-p1:ad] Set crypto: OPENSSL
I1126 17:10:10.611987 t77473 DR-1-3-c73-p2-c73-p1:cm] Set crypto: OPENSSL


< Enable the encryption plugin for all resources > 
[root@c73-p1 dgkim]# drx-ctl set crypto on all
DR-2-3-c73-p2-c73-p1: updated.
Result: 2 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:08:26.156687 t77473 DR-1-3-c73-p2-c73-p1:ad] Set crypto: OPENSSL
I1126 17:08:26.156713 t77473 DR-2-3-c73-p2-c73-p1:am] Set crypto: OPENSSL
I1126 17:08:26.156702 t77473 DR-1-3-c73-p2-c73-p1:cm] Set crypto: OPENSSL
I1126 17:08:26.156719 t77473 DR-2-3-c73-p2-c73-p1:cd] Set crypto: OPENSSL


< Disable encryption plugins for all resources > 
[root@c73-p1 dgkim]# drx-ctl set crypto off all
DR-1-3-c73-p2-c73-p1: updated.
DR-2-3-c73-p2-c73-p1: updated.
Result: 2 resource(s) updated.

[root@c73-p1 dgkim]# 

<output log>
I1206 14:12:59.701227 t81344 DR-1-3-c73-p2-c73-p1:am] Set crypto: NONE
I1206 14:12:59.701250 t81344 DR-1-3-c73-p2-c73-p1:cd] Set crypto: NONE
I1206 14:12:59.701305 t81344 DR-2-3-c73-p2-c73-p1:ad] Set crypto: NONE
I1206 14:12:59.701315 t81344 DR-2-3-c73-p2-c73-p1:cm] Set crypto: NONE

drx-ctl set bwlimit [limit] [connection name] Setting bandwith limits 
set bwlimit
< Set the B/W of resource r0 to 1G >
[root@c73-p1 dgkim]# drx-ctl set bwlimit 1G DR-1-3-c73-p2-c73-p1
DR-1-3-c73-p2-c73-p1: updated.
Result: 1 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:21:11.633557 t77473 DR-1-3-c73-p2-c73-p1:ad] Set bandwidth limit: 1.00 GB
I1126 17:21:11.633573 t77473 DR-1-3-c73-p2-c73-p1:cm] Set bandwidth limit: 1.00 GB


< Set the B/W of all resources to 100M >
[root@c73-p1 dgkim]# drx-ctl set bwlimit 100M all
DR-1-3-c73-p2-c73-p1: updated.
DR-2-3-c73-p2-c73-p1: updated.
Result: 2 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:20:55.431890 t77473 DR-1-3-c73-p2-c73-p1:ad] Set bandwidth limit: 100.00 MB
I1126 17:20:55.431916 t77473 DR-1-3-c73-p2-c73-p1:cm] Set bandwidth limit: 100.00 MB
I1126 17:20:55.431964 t77473 DR-2-3-c73-p2-c73-p1:am] Set bandwidth limit: 100.00 MB
I1126 17:20:55.431984 t77473 DR-2-3-c73-p2-c73-p1:cd] Set bandwidth limit: 100.00 MB

drx-ctl set license [file-path]Change a license information
  • After validating the license for the specified path, change the license information for the default path.
  • Changing to a valid license does not change the behavior of the DRX process because the resource must remain connected.
set license
C:\Users\Administrator>drx-ctl set license drx.lic
License status : Temporary, Expire date: 30-nov-2018, Validity day: 4
Result: done.


C:\Users\Administrator>

<output log>
I1127 09:28:40.374185 t5880 main] Verify license is available
I1127 09:28:40.374185 t5880 main:license] Checking license for [C:\Users\Administrator\drx.lic]
I1127 09:28:40.374185 t5880 main:license] License Status: Temporary, Expire date: 30-nov-2018, Validity day: 4
I1127 09:28:40.389865 t5880 main] License applied

drx-ctl reset statistics [connection name or all] 

drx-ctl reset st [connection name or all] 

Resetting statistics
reset statistics
< Initialize statistics for resource R0 only >
[root@c73-p1 dgkim]# drx-ctl reset st DR-1-3-c73-p2-c73-p1
DR-1-3-c73-p2-c73-p1: reseted.
Result: 1 resource(s) reseted.

[root@c73-p1 dgkim]#

< Reset statistics for all resources >
[root@c73-p1 dgkim]# drx-ctl reset st all
DR-1-3-c73-p2-c73-p1: reseted.
DR-2-3-c73-p2-c73-p1: reseted.
Result: 2 resource(s) reseted.

[root@c73-p1 dgkim]#

Event

Receive real-time events as they happen in the DRX engine.

CommandDescriptionsOutput samples
drx-ctl events [connection name or all]Real-time event output
events
< Receive only common events >
[root@c73-p1 bsr.d]# drx-ctl events 
[system] connected
[2018-11-27 11:22:38.933] start common


< Receive only events from specified connections >
[root@c73-p1 bsr.d]# drx-ctl events DR-1-3-c73-p2-c73-p1
[system] connected


< Receive all events >
[root@c73-p1 bsr.d]# drx-ctl events all
[system] connected
[2018-11-27 10:43:12.831] start common


A list of event notifications.

EventTypeDescriptionOutput sample
commonstartStart event notifications
start
[root@c73-p1 bsr.d]# drx-ctl events 
[system] connected
[2018-11-27 11:22:38.933] start common
stopStop event notifications
stop
[2018-11-27 11:12:39.098] stop common
shutdownExit with a command
shutdown
[2018-11-27 11:12:39.076] shutdown success
set licenseLicenses setting up
  • temporary, permanent, invalid
set license
[2018-11-27 13:17:58.806] set license temporary
set loglevellog level(file, console)
set loglevel
[2018-11-27 13:44:31.681] set loglevel-file trace
[2018-11-27 13:44:41.496] set loglevel-file debug
[2018-11-27 13:44:44.328] set loglevel-file info
[2018-11-27 13:44:46.088] set loglevel-file warning
[2018-11-27 13:44:47.968] set loglevel-file error
[2018-11-27 13:44:48.104] set loglevel-file critical
[2018-11-27 13:44:57.776] set loglevel-file off

개별upup
up
[2018-11-27 13:50:29.151] up DR-1-3-c73-p2-c73-p1 success
downdown
down
[2018-11-27 13:46:37.141] down DR-1-3-c73-p2-c73-p1 success
acceptIP Accept result
accetp state
[2018-11-27 13:50:29.659] drx_accept DR-1-3-c73-p2-c73-p1 31.1.1.192:33476
[2018-11-27 13:50:34.298] bsr_accept DR-1-3-c73-p2-c73-p1 31.1.1.164:40557
connconnection status, result
conn state
[2018-11-27 14:23:39.120] acceptor_state DR-1-3-c73-p2-c73-p1 bridging
[2018-11-27 14:23:39.121] connector_state DR-1-3-c73-p2-c73-p1 bridging
[2018-11-27 14:23:39.123] connector_state DR-1-3-c73-p2-c73-p1 bridged
[2018-11-27 14:23:39.222] connector_state DR-1-3-c73-p2-c73-p1 connecting
[2018-11-27 14:23:39.328] acceptor_state DR-1-3-c73-p2-c73-p1 bridged
[2018-11-27 14:23:39.422] acceptor_state DR-1-3-c73-p2-c73-p1 waiting
[2018-11-27 14:23:43.960] acceptor_state DR-1-3-c73-p2-c73-p1 connected
[2018-11-27 14:23:43.960] acceptor_state DR-1-3-c73-p2-c73-p1 establishing
[2018-11-27 14:23:44.038] acceptor_state DR-1-3-c73-p2-c73-p1 established
[2018-11-27 14:23:44.069] connector_state DR-1-3-c73-p2-c73-p1 establishing
[2018-11-27 14:23:44.069] connector_state DR-1-3-c73-p2-c73-p1 established
setcompression
set compress
[2018-11-27 15:27:26.895] set DR-1-3-c73-p2-c73-p1 compressor NONE
[2018-11-27 15:27:50.308] set DR-1-3-c73-p2-c73-p1 compressor LZ4 1
[2018-11-27 15:30:34.584] set DR-1-3-c73-p2-c73-p1 compressor ZLIB 1
[2018-11-27 17:48:31.204] set DR-1-3-c73-p2-c73-p1 compressor IQA 1
crypto
set crypto
[2018-11-27 17:50:32.851] set DR-1-3-c73-p2-c73-p1 crypto OPENSSL
[2018-11-27 17:50:46.264] set DR-1-3-c73-p2-c73-p1 crypto NONE
Bandwidth
set bwlimit
[2018-11-27 17:56:07.698] set DR-1-3-c73-p2-c73-p1 bwlimit 1073741824
[2018-11-27 17:58:12.380] set DR-1-3-c73-p2-c73-p1 bwlimit 104857600
resetResetting statistics
reset statistics
[2018-11-27 17:58:52.962] reset DR-1-3-c73-p2-c73-p1 success
packet

Send/Receive Failure

packet error
[2018-11-28 11:12:19.953] packet DR-1-3-c73-p2-c73-p1 receive_fail 15 15
compress

Failure-only notifications

compress error
[2018-11-28 09:43:04.543] compress DR-1-3-c73-p2-c73-p1 compress_fail 80 1048576 0
[2018-11-28 10:28:30.629] compress DR-1-3-c73-p1-c73-p2 decompress_fail 47 1048576 0
crypto

Failure-only notifications

crypto error
[2018-11-28 10:28:42.186] crypto DR-2-3-c73-p2-c73-p1 encrypto_fail 41 1048576 48
[2018-11-28 10:28:42.081] crypto DR-2-3-c73-p1-c73-p2 decrypto_fail 96 1048576 80