You can use the Artemis CLI to execute data maintenance tools:
The following sub-commands are available when running the CLI data command from a particular broker instance that has already been installed using the create command:
Name | Description |
---|---|
Prints a report about journal records of a non-running server | |
exp | Export the message data using a special and independent XML format |
imp | Imports the journal to a running broker using the output from expt |
encode | shows an internal format of the journal encoded to String |
decode | imports the internal journal format from encode |
compact | Compacts the journal of a non running server |
recover | Recover (undelete) messages from an existing journal and create a new one. |
You can use the CLI help for more information on how to execute each of the tools. For example:
$ ./artemis help data print NAME artemis data print - Print data records information (WARNING: don't use while a production server is running) SYNOPSIS artemis data print [--bindings <binding>] [--broker <brokerConfig>] [--f] [--jdbc] [--jdbc-bindings-table-name <jdbcBindings>] [--jdbc-connection-url <jdbcURL>] [--jdbc-driver-class-name <jdbcClassName>] [--jdbc-large-message-table-name <jdbcLargeMessages>] [--jdbc-message-table-name <jdbcMessages>] [--jdbc-node-manager-table-name <jdbcNodeManager>] [--jdbc-page-store-table-name <jdbcPageStore>] [--journal <journal>] [--large-messages <largeMessges>] [--output <output>] [--paging <paging>] [--reclaimed] [--safe] [--verbose] [--] [<configuration>] OPTIONS --bindings <binding> The folder used for bindings (default from broker.xml) --broker <brokerConfig> This would override the broker configuration from the bootstrap --f This will allow certain tools like print-data to be performed ignoring any running servers. WARNING: Changing data concurrently with a running broker may damage your data. Be careful with this option. --jdbc It will activate jdbc --jdbc-bindings-table-name <jdbcBindings> Name of the jdbc bindigns table --jdbc-connection-url <jdbcURL> The connection used for the database --jdbc-driver-class-name <jdbcClassName> JDBC driver classname --jdbc-large-message-table-name <jdbcLargeMessages> Name of the large messages table --jdbc-message-table-name <jdbcMessages> Name of the jdbc messages table --jdbc-node-manager-table-name <jdbcNodeManager> Name of the jdbc node manager table --jdbc-page-store-table-name <jdbcPageStore> Name of the page store messages table --journal <journal> The folder used for messages journal (default from broker.xml) --large-messages <largeMessges> The folder used for large-messages (default from broker.xml) --output <output> Output name for the file --paging <paging> The folder used for paging (default from broker.xml) --reclaimed This option will try to print as many records as possible from reclaimed files --safe It will print your data structure without showing your data --verbose Adds more information on the execution -- This option can be used to separate command-line options from the list of argument, (useful when arguments might be mistaken for command-line options <configuration> Broker Configuration URI, default 'xml:${ARTEMIS_INSTANCE}/etc/bootstrap.xml'
For a full list of data tools commands available use:
$ ./artemis help data NAME artemis data - data tools group (print|imp|exp|encode|decode|compact|recover) (example ./artemis data print) SYNOPSIS artemis data artemis data compact [--journal <journal>] [--large-messages <largeMessges>] [--paging <paging>] [--broker <brokerConfig>] [--bindings <binding>] [--verbose] artemis data decode [--journal <journal>] [--large-messages <largeMessges>] [--file-size <size>] [--paging <paging>] [--prefix <prefix>] [--suffix <suffix>] [--broker <brokerConfig>] [--directory <directory>] [--bindings <binding>] [--verbose] --input <input> artemis data encode [--journal <journal>] [--large-messages <largeMessges>] [--file-size <size>] [--paging <paging>] [--prefix <prefix>] [--suffix <suffix>] [--broker <brokerConfig>] [--bindings <binding>] [--verbose] [--directory <directory>] artemis data exp [--jdbc-driver-class-name <jdbcClassName>] [--journal <journal>] [--jdbc-connection-url <jdbcURL>] [--large-messages <largeMessges>] [--jdbc-bindings-table-name <jdbcBindings>] [--paging <paging>] [--f] [--jdbc-large-message-table-name <jdbcLargeMessages>] [--broker <brokerConfig>] [--jdbc-page-store-table-name <jdbcPageStore>] [--bindings <binding>] [--jdbc] [--verbose] [--jdbc-message-table-name <jdbcMessages>] [--jdbc-node-manager-table-name <jdbcNodeManager>] [--output <output>] artemis data imp [--legacy-prefixes] [--password <password>] [--transaction] [--verbose] [--port <port>] [--user <user>] [--sort] --input <input> [--host <host>] artemis data print [--reclaimed] [--jdbc-driver-class-name <jdbcClassName>] [--journal <journal>] [--jdbc-connection-url <jdbcURL>] [--large-messages <largeMessges>] [--jdbc-bindings-table-name <jdbcBindings>] [--paging <paging>] [--f] [--jdbc-large-message-table-name <jdbcLargeMessages>] [--safe] [--broker <brokerConfig>] [--jdbc-page-store-table-name <jdbcPageStore>] [--bindings <binding>] [--jdbc] [--verbose] [--jdbc-message-table-name <jdbcMessages>] [--jdbc-node-manager-table-name <jdbcNodeManager>] [--output <output>] artemis data recover [--jdbc-driver-class-name <jdbcClassName>] [--journal <journal>] [--jdbc-connection-url <jdbcURL>] [--large-messages <largeMessges>] [--reclaimed] --target <outputJournal> [--jdbc-bindings-table-name <jdbcBindings>] [--paging <paging>] [--f] [--jdbc-large-message-table-name <jdbcLargeMessages>] [--broker <brokerConfig>] [--jdbc-page-store-table-name <jdbcPageStore>] [--bindings <binding>] [--jdbc] [--verbose] [--jdbc-message-table-name <jdbcMessages>] [--jdbc-node-manager-table-name <jdbcNodeManager>] [--output <output>] COMMANDS With no arguments, Display help information recover Recover (undelete) every message on the journal by creating a new output journal. Rolled backed and acked messages will be sent out to the output as much as possible. With --jdbc-driver-class-name option, JDBC driver classname With --journal option, The folder used for messages journal (default from broker.xml) With --jdbc-connection-url option, The connection used for the database With --large-messages option, The folder used for large-messages (default from broker.xml) With --reclaimed option, This option will try to recover as many records as possible from reclaimed files With --target option, Output folder container the new journal with all the generated messages With --jdbc-bindings-table-name option, Name of the jdbc bindigns table With --paging option, The folder used for paging (default from broker.xml) With --f option, This will allow certain tools like print-data to be performed ignoring any running servers. WARNING: Changing data concurrently with a running broker may damage your data. Be careful with this option. With --jdbc-large-message-table-name option, Name of the large messages table With --broker option, This would override the broker configuration from the bootstrap With --jdbc-page-store-table-name option, Name of the page store messages table With --bindings option, The folder used for bindings (default from broker.xml) With --jdbc option, It will activate jdbc With --verbose option, Adds more information on the execution With --jdbc-message-table-name option, Name of the jdbc messages table With --jdbc-node-manager-table-name option, Name of the jdbc node manager table With --output option, Output name for the file print Print data records information (WARNING: don't use while a production server is running) With --reclaimed option, This option will try to print as many records as possible from reclaimed files With --jdbc-driver-class-name option, JDBC driver classname With --journal option, The folder used for messages journal (default from broker.xml) With --jdbc-connection-url option, The connection used for the database With --large-messages option, The folder used for large-messages (default from broker.xml) With --jdbc-bindings-table-name option, Name of the jdbc bindigns table With --paging option, The folder used for paging (default from broker.xml) With --f option, This will allow certain tools like print-data to be performed ignoring any running servers. WARNING: Changing data concurrently with a running broker may damage your data. Be careful with this option. With --jdbc-large-message-table-name option, Name of the large messages table With --safe option, It will print your data structure without showing your data With --broker option, This would override the broker configuration from the bootstrap With --jdbc-page-store-table-name option, Name of the page store messages table With --bindings option, The folder used for bindings (default from broker.xml) With --jdbc option, It will activate jdbc With --verbose option, Adds more information on the execution With --jdbc-message-table-name option, Name of the jdbc messages table With --jdbc-node-manager-table-name option, Name of the jdbc node manager table With --output option, Output name for the file exp Export all message-data using an XML that could be interpreted by any system. With --jdbc-driver-class-name option, JDBC driver classname With --journal option, The folder used for messages journal (default from broker.xml) With --jdbc-connection-url option, The connection used for the database With --large-messages option, The folder used for large-messages (default from broker.xml) With --jdbc-bindings-table-name option, Name of the jdbc bindigns table With --paging option, The folder used for paging (default from broker.xml) With --f option, This will allow certain tools like print-data to be performed ignoring any running servers. WARNING: Changing data concurrently with a running broker may damage your data. Be careful with this option. With --jdbc-large-message-table-name option, Name of the large messages table With --broker option, This would override the broker configuration from the bootstrap With --jdbc-page-store-table-name option, Name of the page store messages table With --bindings option, The folder used for bindings (default from broker.xml) With --jdbc option, It will activate jdbc With --verbose option, Adds more information on the execution With --jdbc-message-table-name option, Name of the jdbc messages table With --jdbc-node-manager-table-name option, Name of the jdbc node manager table With --output option, Output name for the file imp Import all message-data using an XML that could be interpreted by any system. With --legacy-prefixes option, Do not remove prefixes from legacy imports With --password option, User name used to import the data. (default null) With --transaction option, If this is set to true you will need a whole transaction to commit at the end. (default false) With --verbose option, Adds more information on the execution With --port option, The port used to import the data (default 61616) With --user option, User name used to import the data. (default null) With --sort option, Sort the messages from the input (used for older versions that won't sort messages) With --input option, The input file name (default=exp.dmp) With --host option, The host used to import the data (default localhost) decode Decode a journal's internal format into a new journal set of files With --journal option, The folder used for messages journal (default from broker.xml) With --large-messages option, The folder used for large-messages (default from broker.xml) With --file-size option, The journal size (default 10485760) With --paging option, The folder used for paging (default from broker.xml) With --prefix option, The journal prefix (default activemq-data) With --suffix option, The journal suffix (default amq) With --broker option, This would override the broker configuration from the bootstrap With --directory option, The journal folder (default journal folder from broker.xml) With --bindings option, The folder used for bindings (default from broker.xml) With --verbose option, Adds more information on the execution With --input option, The input file name (default=exp.dmp) encode Encode a set of journal files into an internal encoded data format With --journal option, The folder used for messages journal (default from broker.xml) With --large-messages option, The folder used for large-messages (default from broker.xml) With --file-size option, The journal size (default 10485760) With --paging option, The folder used for paging (default from broker.xml) With --prefix option, The journal prefix (default activemq-data) With --suffix option, The journal suffix (default amq) With --broker option, This would override the broker configuration from the bootstrap With --bindings option, The folder used for bindings (default from broker.xml) With --verbose option, Adds more information on the execution With --directory option, The journal folder (default the journal folder from broker.xml) compact Compacts the journal of a non running server With --journal option, The folder used for messages journal (default from broker.xml) With --large-messages option, The folder used for large-messages (default from broker.xml) With --paging option, The folder used for paging (default from broker.xml) With --broker option, This would override the broker configuration from the bootstrap With --bindings option, The folder used for bindings (default from broker.xml) With --verbose option, Adds more information on the execution