📄 dbwriterexample.java
字号:
/*------------------------------------------------------------------------------Name: Example.javaProject: xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE file------------------------------------------------------------------------------*/package org.xmlBlaster.contrib.dbwriter;import java.util.logging.Logger;import java.util.logging.LogManager;import java.util.prefs.Preferences;import org.xmlBlaster.contrib.I_Info;import org.xmlBlaster.contrib.dbwatcher.Info;/** * Example code to run DbWriter as a standalone application. * <p> * You can edit this file and change the configuration settings. * </p> * <p> * Simple usage example: * </p> * <p> * <tt>java org.xmlBlaster.contrib.dbwriter.Example -db.password secret</tt> * </p> * <p> * <tt>java -Djava.util.logging.config.file=testlog.properties org.xmlBlaster.contrib.dbwriter.Example -db.password secret</tt> * </p> * <p> * <tt>java -Djdbc.drivers=com.microsoft.sqlserver.jdbc.SQLServerDriver -Ddb.url=jdbc:sqlserver://localhost:1433/database=xmlBlaster -Ddb.user=xmlblast -Ddb.password=secret org.xmlBlaster.contrib.dbwriter.DbWriterExample -protocol SOCKET -plugin/socket/hostname laghi</tt> * </p> */public class DbWriterExample { private static Logger log = Logger.getLogger(DbWriterExample.class.getName()); /** * Example for polling the DB * @param prefs Configuration * @throws Exception Can be of any type */ private void pollingExample(Preferences prefs) throws Exception { log.info("Start polling test"); I_Info info = new Info(prefs); DbWriter processor = new DbWriter(info); long sleep = info.getLong("example.sleep", 0L); if (sleep > 0) { log.info("Sleeping for '" + sleep / 1000 + " seconds"); Thread.sleep(sleep); } else { log.info("Sleeping forever"); while (true) { Thread.sleep(5000L); } } processor.shutdown(); log.info("Done!"); } /** * Example code. * <p /> * <tt>java -Djava.util.logging.config.file=testlog.properties org.xmlBlaster.contrib.dbwatcher.Example -alertScheduler.pollInterval 10000 -db.password secret</tt> * @param args Command line */ public static void main(String[] args) { try { System.setProperty("java.util.logging.config.file", "testlog.properties"); LogManager.getLogManager().readConfiguration(); Preferences prefs = loadArgs(args); DbWriterExample example = new DbWriterExample(); example.pollingExample(prefs); } catch (Throwable e) { System.err.println("SEVERE: " + e.toString()); e.printStackTrace(); } } private static void setPref(String key, String defVal, Preferences prefs) { String prop = System.getProperty(key, defVal); if (prop != null) prefs.put(key, prop); else prefs.put(key, defVal); } /** * Parse command line arguments * @param args Command line * @return Configuration */ public static Preferences loadArgs(String[] args) { try { // user: See $HOME/.java/.userPrefs // root: See /opt/j2sdk1.4.2_06/jre/.systemPrefs/prefs.xml Preferences prefs = Preferences.userRoot(); prefs.clear(); // ---- Database settings ----- String driverClass = System.getProperty("jdbc.drivers", "org.hsqldb.jdbcDriver:oracle.jdbc.driver.OracleDriver:com.microsoft.jdbc.sqlserver.SQLServerDriver:org.postgresql.Driver"); // String dbUrl = System.getProperty("db.url", "jdbc:oracle:thin:@localhost:1521:orcl"); String dbUrl = System.getProperty("db.url", "jdbc:postgresql:test//localhost/test"); // String dbUser = System.getProperty("db.user", "system"); String dbUser = System.getProperty("db.user", "postgres"); String dbPassword = System.getProperty("db.password", ""); prefs.put("jdbc.drivers", driverClass); prefs.put("db.url", dbUrl); prefs.put("db.user", dbUser); prefs.put("db.password", dbPassword); // ---- Mom settings ----- /* prefs.put("mom.connectQos", "<qos>" + " <securityService type='htpasswd' version='1.0'>" + " <![CDATA[" + " <user>michele</user>" + " <passwd>secret</passwd>" + " ]]>" + " </securityService>" + " <session name='joe/3'/>'" + " <address type='SOCKET'>" + " socket://192.168.110.10:7607" + " </address>" + " </qos>"); System.setProperty("protocol", "SOCKET"); System.setProperty("protocol/socket/hostname", "192.168.110.10"); */ // ----- Other DbWriter settings ----- // prefs.put("mom.subscribeKey", "<key oid='' queryType='XPATH'>//key</key>"); String subscribeKey = System.getProperty("mom.subscribeKey", "<key oid='transaction'/>"); prefs.put("mom.subscribeKey", subscribeKey); prefs.put("mom.subscribeQos", "<qos><initialUpdate>false</initialUpdate><multiSubscribe>false</multiSubscribe><persistent>true</persistent></qos>"); prefs.put("dbWriter.writer.class", "org.xmlBlaster.contrib.replication.ReplicationWriter"); setPref("example.sleep", "0L", prefs); // setPref("pingInterval", "10000L", prefs); // setPref("retries", ".-1", prefs); // setPref("delay", ".4000", prefs); setPref("dispatch/callback/retries", ".-1", prefs); setPref("dispatch/callback/delay", ".10000", prefs); setPref("queue/callback/maxEntries", "10000", prefs); for (int i=0; i<args.length-1; i++) { if (args[i].startsWith("-")) { prefs.put(args[i].substring(1), args[++i]); } } prefs.flush(); // Log output: //prefs.exportSubtree(System.out); return prefs; } catch (Throwable e) { e.printStackTrace(); log.severe("Problems: " + e.toString()); } return null; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -