lizongbo at 618119.com 工作,生活,Android,前端,Linode,Ubuntu,nginx,java,apache,tomcat,Resin,mina,Hessian,XMPP,RPC

2007年11月5日

JBossCache 2.0.0的使用及注意事项

Filed under: cache,Java,JbossCache — 标签:, — lizongbo @ 15:42

JBossCache 2.0.0的使用及注意事项

1.首先是下载 JBossCache 2.0.0 GA.
下载地址为 :http://jaist.dl.sourceforge.net/sourceforge/jboss/JBossCache-all-2.0.0.GA.zip

来源 : http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=102339

(目前最新版为: JBossCache 2.1.0.CR1 http://jaist.dl.sourceforge.net/sourceforge/jboss/jbosscache-core-2.1.0.CR1-all.zip)

2.解压到 D:\Java\JBossCache-all-2.0.0.GA。
D:\Java\JBossCache-all-2.0.0.GA\lib下是JbossCache需要用到的lib。

D:\Java\JBossCache-all-2.0.0.GA\docs\JBossCache-UserGuide\en\pdf\JBossCache-UserGuide.pdf是用户手册。
3.创建 Cache可以通过配置文件和默认的Cache工厂 。

[code]
XmlConfigurationParser parser = new XmlConfigurationParser();
Configuration conf = parser.parseFile(“E://JbossCacheservice.xml”);
Cache cache = DefaultCacheFactory.getInstance().createCache(conf, true);
[/code]

不过我遇到过郁闷的问题:
[code]
XmlConfigurationParser parser = new XmlConfigurationParser();
Configuration conf = parser.parseFile(“E://JbossCacheservice.xml”);
DefaultCacheFactory dcf=DefaultCacheFactory.getInstance();
Cache cache = dcf.createCache(conf, true);
[/code]
用DefaultCacheFactory.getInstance()来获取CacheFactory,却编译不了,会被提示:
“TestJbossCache.java”: incompatible types; no instance(s) of type variable(s) K,V exist so that org.jboss.cache.CacheFactory<K,V> conforms to org.jboss.cache.DefaultCacheFactory; found : <K,V>org.jboss.cache.CacheFactory<K,V>, required: org.jboss.cache.DefaultCacheFactory at line 13, column 49
4.配置文件

由于jbossCache 2.0 与 1.4 版本相比 变化较大,很多属性配置都已经被废弃或使用新的属性配置来代替了 。

CacheLoaderConfiguration被CacheLoaderConfig替代了。

集群的配置参数也有所变化 。

2007-11-05 10:59:24,671 WARN [org.jboss.cache.factories.XmlConfigurationParser]
– <Found non-existent JBC 1.x attribute ‘CacheLoaderConfiguration’ and replaced with ‘CacheLoaderConfig’. Please update your config to use the new attribute name>

缓存启动的时候不会把缓存在文件的内容加载到内存,如果此时遍历缓存节点,cache.getRoot()将得不到节点信息。
5.java测试代码:

[code]
package com.lizongbo.jbosscache;

import org.jboss.cache.factories.XmlConfigurationParser;
import org.jboss.cache.config.Configuration;
import org.jboss.cache.DefaultCacheFactory;
import org.jboss.cache.Fqn;
import org.jboss.cache.Cache;

import java.util.*;

public class TestJbossCacheMaster {
public static void main(String[] args) throws InterruptedException {
XmlConfigurationParser parser = new XmlConfigurationParser();
Configuration conf = parser.parseFile(“E://JbossCacheservice_master.xml”);
Cache cache = DefaultCacheFactory.getInstance().createCache(conf, true);
Fqn fqn = Fqn.fromString(“/domains/nsinfo”);
JbossCacheTestListener listener = new JbossCacheTestListener();
cache.addCacheListener(listener);
System.out.println(” root is:” + cache.getRoot());
System.out.println(“缓存的 name server为: ” + cache.get(fqn, “618119.com”));
System.out.println(” after cache.get root is:” + cache.getRoot());
List<String> l = new ArrayList<String> ();
l.add(“ns1.dnspod.net”);
l.add(“ns2.dnspod.net”);
l.add(“ns3.dnspod.net”);
l.add(“ns4.dnspod.net”);
l.add(“ns5.dnspod.net”);
l.add(“ns6.dnspod.net”);
cache.put(fqn, “618119.com”, l);
System.out.println(“缓存的 name server为: ” + cache.get(fqn, “618119.com”));
Thread.sleep(500000);
}
}
[/code]

xml配置文件:

[code]

<?xml version=”1.0″ encoding=”UTF-8″?>
<server>
<mbean code=”org.jboss.cache.jmx.CacheJmxWrapper” name=”jboss.cache:service=Cache”>
<depends>jboss:service=Naming</depends>
<depends>jboss:service=TransactionManager</depends>
<attribute name=”TransactionManagerLookupClass”>org.jboss.cache.transaction.GenericTransactionManagerLookup</attribute>
<attribute name=”IsolationLevel”>REPEATABLE_READ</attribute>
<attribute name=”CacheMode”>REPL_ASYNC</attribute>
<attribute name=”UseReplQueue”>false</attribute>
<attribute name=”ReplQueueInterval”>0</attribute>
<attribute name=”ReplQueueMaxElements”>0</attribute>
<attribute name=”ClusterName”>JBossCache-Cluster</attribute>
<depends optional-attribute-name=”MultiplexerService”
proxy-type=”attribute”>jgroups.mux:name=Multiplexer</depends>
<attribute name=”MultiplexerStack”>udp</attribute>
<attribute name=”ClusterConfig”>
<config>
<UDP mcast_addr=”228.1.2.3″ mcast_port=”48866″
ip_ttl=”64″ ip_mcast=”true”
mcast_send_buf_size=”150000″ mcast_recv_buf_size=”80000″
ucast_send_buf_size=”150000″ ucast_recv_buf_size=”80000″
loopback=”false”/>
<PING timeout=”2000″ num_initial_members=”3″
up_thread=”false” down_thread=”false”/>
<MERGE2 min_interval=”10000″ max_interval=”20000″/>
<FD_SOCK/>
<VERIFY_SUSPECT timeout=”1500″
up_thread=”false” down_thread=”false”/>
<pbcast.NAKACK gc_lag=”50″ retransmit_timeout=”600,1200,2400,4800″
max_xmit_size=”8192″ up_thread=”false” down_thread=”false”/>
<UNICAST timeout=”600,1200,2400″ down_thread=”false”/>
<pbcast.STABLE desired_avg_gossip=”20000″
up_thread=”false” down_thread=”false”/>
<pbcast.GMS join_timeout=”5000″ join_retry_timeout=”2000″
shun=”true” print_local_addr=”true”/>
<FC max_credits=”2000000″ down_thread=”false” up_thread=”false”
min_threshold=”0.20″/>
<FRAG frag_size=”8192″ down_thread=”false” up_thread=”true”/>
<pbcast.STATE_TRANSFER up_thread=”true” down_thread=”true”/>
</config>
</attribute>
<attribute name=”InitialStateRetrievalTimeout”>20000</attribute>
<attribute name=”SyncReplTimeout”>20000</attribute>
<attribute name=”LockAcquisitionTimeout”>15000</attribute>
<attribute name=”FetchInMemoryState”>false</attribute>
<attribute name=”CacheLoaderConfig”>
<config>
<passivation>false</passivation>
<shared>false</shared>
<cacheloader>
<class>org.jboss.cache.loader.FileCacheLoader</class>
<properties>
location=/tmp/filecacheloader_master
</properties>
<async>false</async>
<fetchPersistentState>false</fetchPersistentState>
<ignoreModifications>false</ignoreModifications>
<purgeOnStartup>false</purgeOnStartup>
</cacheloader>
</config>
</attribute>
</mbean>
</server>

[/code]

Windows系统中两种抓取DNS数据包的方法

Filed under: DNS — 标签:, , , , — lizongbo @ 15:32

1.使用Microsoft Network Monitor 3.1

下载地址:

http://download.microsoft.com/download/1/8/f/18fd3dfa-ea78-4ed0-a62d-f5b043391ea4/NM31_Release_x86.msi

来源:http://support.microsoft.com/kb/933741/zh-cn

安装Microsoft Network Monitor 3.1之后,
启动Microsoft Network Monitor: 开始菜单–〉所有程序–〉Microsoft Network Monitor 3.1–>Microsoft Network Monitor 3.1.

然后点“Create a new capture tab”,(capture1如果有被关掉的子面板,可以通过主菜单–〉View –>Window –>选择需要重新显示的view)

在 “Capture Filter” 中点 文件夹图标,选择 “DNS”,再点“Apply”,使之生效。

(也可以默认抓取所有数据包,在 Display Filter中选择 只显示 DNS数据包  )
然后点工具条上的绿色三角,开始抓取数据包,或者直接按快捷键“F10”.

接下来到开始菜单–〉运行–>输入cmd,然后确定进命令行,输入nslookup,回车。

nslookup首先会发起一个针对当前DNS服务器的PTR查询。在Microsoft Network Monitor的Fame Summary视图中已经可以看到DNS数据包。

此时在nslookup的命令行下,输入 618119.com
可以得到类似如下的查询结果:
> 618119.com
Server:  [202.96.128.86]
Address:  202.96.128.86

Non-authoritative answer:
Name:    618119.com
Address:  69.89.31.74

而Fame Summary中也可以看到发出的DNS查询数据包和DNS查询结果的应答。

在Fame Summary选种要查看的纪录,可以在 Frame Details 和 hex Details的视图里看到协议的字段解析和16进制数据。

2.使用Sniffer Pro

安装SnifferPro 4.70.530:先运行 SnifferPro_4_70_530.exe,再运行cn-SnifferPro4.70.530.EXE。

启动程序:开始菜单–〉所有程序–〉Sniffer Pro–>Sniffer.

选择要监听的网卡,确定。

主菜单–〉捕获–〉定义过滤器–〉选中“默认”,然后点“配置文件”–>点“新建”–〉输入名字为“dnstest”,然后点“好”,再点完成。

选中“dnstest”,切换到“地址”面板,地址类型选择“IP”,然后选中本机IP(地址簿没有纪录的话,可以手工添加或自动扫描)。

在位置1的的第一行写上本机ip,比如”192.168.18.2″,,点一下“位置2”的第一行,选择为“任意的”
切换到“高级”面板,找到“IP”节点,展开节点,找到TCP--> 选中DNS(TCP),找到UDP,选中DNS(UDP).

点击确定,已经配置好捕获数据包的过滤器.

主菜单–〉捕获–〉选择过滤器–〉选中“testdns”.点确定.

按快捷键 F10,开始捕获.

进入命令行,使用nslookup进行dns查询.

切换到 Sniffer Pro ,按F9停止捕获并显示.

在"专家"子窗口中,点左下角的"解码"面板.
在这里就可以看到dns数据包的解析信息 。

Powered by WordPress