10秒为任意数据库增加执行日志功能(3)
2008-02-23 09:16:01来源:互联网 阅读 ()
arg="9527"表示服务器将在9527端口监听。
我们已经开发了如下两种客户端:SocketConsoleClIEnt(Socket控制台客户端) 和 SocketSwingClIEnt(Socket Swing客户端)。
SocketConsoleClIEnt工作在控制台中:
SocketSwingClient是一个Swing GUI客户端:
您可以运行"java -classpath jdbmonitor.jar com.cownew.JDBMonitor.listenerImpl.sckListenerClient.SocketConsoleClient" 来启动SocketConsoleClient,运行"java -classpath jdbmonitor.jar com.cownew.JDBMonitor.listenerImpl.sckListenerClient.SocketSwingClient"启动SocketSwingClient。
您可以编写符合您自己要求的客户端,具体细节请参考com.cownew.JDBMonitor.listenerImpl.sckListenerClient.ListenerClient和com.cownew.JDBMonitor.listenerImpl.sckListenerClient.IDBSocketClientListener.
4、DataBaseDBListener
DataBaseDBListener将会把SQL语句记录到数据库中:
如下配置:
<Listener class="com.cownew.JDBMonitor.listenerImpl.DataBaseDBListener"
arg="dburl=jdbc:odbc:MQIS;user=;passWord=;logtable=T_Log_SQLLog"/>
"dburl=jdbc:odbc:MQIS;user=;passWord=;"表示目标数据库的JDBC连接字符串。"logtable=T_Log_SQLLog" 表示SQL记录将被保存到哪个表中,默认的是T_Log_SQLLog。
如果目标数据库用的JDBC驱动与被监控的数据库不同,请将它加入配置文件的 "JdbcDrivers" 部分,例如:
<config>
<Active>true</Active>
<Listeners>
<Listener class="com.cownew.JDBMonitor.listenerImpl.ConsoleDBListener" arg=""/>
<Listener class="com.cownew.JDBMonitor.listenerImpl.DataBaseDBListener"
arg="dburl=jdbc:odbc:MQIS;user=;passWord=;logtable=T_Log_SQLLog"/>
</Listeners>
<JdbcDrivers>
<JdbcDriver class="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
<JdbcDriver class="sun.jdbc.odbc.JdbcOdbcDriver"/>
</JdbcDrivers>
</config>
"T_Log_SQLLog"的结构是:
"T_Log_SQLLog"的建库脚本在com/cownew/JDBMonitor/listenerImpl/dataBaseListener,(DB2.sql,MSSQLserver.sql,Oracle.sql)。
DataBaseDBListener是跨数据库的,你可以把记录SQL到任何关系数据库中。
FAQ:
1 如果我暂时不想记录SQL语句执行怎么办?难道我要重新修改成原来的样子?
答:无须如此。您只要修改config.xml,增加<Active>false</Active>到文件中即可。
如下:
<config>
<Active> false </Active>
<Listeners>
......
</config>
如何扩展JDBMonitor?
我们已经开发了如下常用的监听器:FileDBListener、ConsoleDBListener、 SocketDBListener、DataBaseDBListener。当然您也可以开发满足您要求的监听器。所有的监听器必须实现接口:com.cownew.JDBMonitor.commo. IDBListener。IDBListener有两个方法需要实现:
public void init(String arg);
public void logSql(SQLInfo info);
JDBMonitor会将配置文件中监听器定义中“arg”的值传递给 “init”方法、将代表SQL语句执行信息的SQLInfo传递给“logSql”方法。
更多信息请参考API文档。
上一篇: Getting Your Feet Wet with the SWT
下一篇: JSP环境基于Session的在线用户统计深入分析
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:有关J2SE的一些东西
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
