今天做OA的及时消息通讯的---消息缓存方式实现.
因为要求缓存消息,发送到服务器的消息并不会立即持久化到数据库中,我做的是,当缓存的消息达到一定的数目的时候,启动持久化线程,进行持久化,持久化是用Ibatis写的一个方法:如下:
public
void
insertMEG2REV(Hashtable messagequeue, Vector receiverqueue)
throws
MessageErrorException, SQLException
...
{
SqlMapClient sqlmap=(SqlMapClient)ServiceLocator.findMyBean("sqlMapClient");
sqlmap.startBatch();
Enumeration em=messagequeue.elements();
//插入及时消息
while(em.hasMoreElements())...{
Message message=(Message)em.nextElement();
Object Key=sqlmap.insert("MessageDao.insertNewMessage3",message);
}
SqlMapClient sqlmap=(SqlMapClient)ServiceLocator.findMyBean("sqlMapClient");
sqlmap.startBatch();
Enumeration em=messagequeue.elements();
//插入及时消息
while(em.hasMoreElements())...{
Message message=(Message)em.nextElement();
Object Key=sqlmap.insert("MessageDao.insertNewMessage3",message);
}