当前位置: 首页>>代码示例>>Java>>正文


Java BufferPool类代码示例

本文整理汇总了Java中org.apache.catalina.tribes.io.BufferPool的典型用法代码示例。如果您正苦于以下问题:Java BufferPool类的具体用法?Java BufferPool怎么用?Java BufferPool使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


BufferPool类属于org.apache.catalina.tribes.io包,在下文中一共展示了BufferPool类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: execute

import org.apache.catalina.tribes.io.BufferPool; //导入依赖的package包/类
protected void execute(ObjectReader reader) throws Exception{
    int pkgcnt = reader.count();

    if ( pkgcnt > 0 ) {
        ChannelMessage[] msgs = reader.execute();
        for ( int i=0; i<msgs.length; i++ ) {
            /**
             * Use send ack here if you want to ack the request to the remote 
             * server before completing the request
             * This is considered an asynchronized request
             */
            if (ChannelData.sendAckAsync(msgs[i].getOptions())) sendAck(Constants.ACK_COMMAND);
            try {
                //process the message
                getCallback().messageDataReceived(msgs[i]);
                /**
                 * Use send ack here if you want the request to complete on this
                 * server before sending the ack to the remote server
                 * This is considered a synchronized request
                 */
                if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(Constants.ACK_COMMAND);
            }catch  ( Exception x ) {
                if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(Constants.FAIL_ACK_COMMAND);
                log.error("Error thrown from messageDataReceived.",x);
            }
            if ( getUseBufferPool() ) {
                BufferPool.getBufferPool().returnBuffer(msgs[i].getMessage());
                msgs[i].setMessage(null);
            }
        }                       
    }

   
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:35,代码来源:BioReplicationTask.java

示例2: execute

import org.apache.catalina.tribes.io.BufferPool; //导入依赖的package包/类
protected void execute(ObjectReader reader) throws Exception {
	int pkgcnt = reader.count();

	if (pkgcnt > 0) {
		ChannelMessage[] msgs = reader.execute();
		for (int i = 0; i < msgs.length; i++) {
			/**
			 * Use send ack here if you want to ack the request to the
			 * remote server before completing the request This is
			 * considered an asynchronous request
			 */
			if (ChannelData.sendAckAsync(msgs[i].getOptions()))
				sendAck(Constants.ACK_COMMAND);
			try {
				// process the message
				getCallback().messageDataReceived(msgs[i]);
				/**
				 * Use send ack here if you want the request to complete on
				 * this server before sending the ack to the remote server
				 * This is considered a synchronized request
				 */
				if (ChannelData.sendAckSync(msgs[i].getOptions()))
					sendAck(Constants.ACK_COMMAND);
			} catch (Exception x) {
				if (ChannelData.sendAckSync(msgs[i].getOptions()))
					sendAck(Constants.FAIL_ACK_COMMAND);
				log.error("Error thrown from messageDataReceived.", x);
			}
			if (getUseBufferPool()) {
				BufferPool.getBufferPool().returnBuffer(msgs[i].getMessage());
				msgs[i].setMessage(null);
			}
		}
	}

}
 
开发者ID:how2j,项目名称:lazycat,代码行数:37,代码来源:BioReplicationTask.java

示例3: send

import org.apache.catalina.tribes.io.BufferPool; //导入依赖的package包/类
/**
 *
 * @param destination Member[] - destination.length > 0
 * @param msg Serializable - the message to send
 * @param options int - sender options, options can trigger guarantee levels and different interceptors to
 * react to the message see class documentation for the <code>Channel</code> object.<br>
 * @param handler - callback object for error handling and completion notification, used when a message is
 * sent asynchronously using the <code>Channel.SEND_OPTIONS_ASYNCHRONOUS</code> flag enabled.
 * @return UniqueId - the unique Id that was assigned to this message
 * @throws ChannelException - if an error occurs processing the message
 * @see org.apache.catalina.tribes.Channel
 */
@Override
public UniqueId send(Member[] destination, Serializable msg, int options, ErrorHandler handler) throws ChannelException {
    if ( msg == null ) throw new ChannelException("Cant send a NULL message");
    XByteBuffer buffer = null;
    try {
        if ( destination == null || destination.length == 0) throw new ChannelException("No destination given");
        ChannelData data = new ChannelData(true);//generates a unique Id
        data.setAddress(getLocalMember(false));
        data.setTimestamp(System.currentTimeMillis());
        byte[] b = null;
        if ( msg instanceof ByteMessage ){
            b = ((ByteMessage)msg).getMessage();
            options = options | SEND_OPTIONS_BYTE_MESSAGE;
        } else {
            b = XByteBuffer.serialize(msg);
            options = options & (~SEND_OPTIONS_BYTE_MESSAGE);
        }
        data.setOptions(options);
        //XByteBuffer buffer = new XByteBuffer(b.length+128,false);
        buffer = BufferPool.getBufferPool().getBuffer(b.length+128, false);
        buffer.append(b,0,b.length);
        data.setMessage(buffer);
        InterceptorPayload payload = null;
        if ( handler != null ) {
            payload = new InterceptorPayload();
            payload.setErrorHandler(handler);
        }
        getFirstInterceptor().sendMessage(destination, data, payload);
        if ( Logs.MESSAGES.isTraceEnabled() ) {
            Logs.MESSAGES.trace("GroupChannel - Sent msg:" + new UniqueId(data.getUniqueId()) + " at " +new java.sql.Timestamp(System.currentTimeMillis())+ " to "+Arrays.toNameString(destination));
            Logs.MESSAGES.trace("GroupChannel - Send Message:" + new UniqueId(data.getUniqueId()) + " is " +msg);
        }

        return new UniqueId(data.getUniqueId());
    }catch ( Exception x ) {
        if ( x instanceof ChannelException ) throw (ChannelException)x;
        throw new ChannelException(x);
    } finally {
        if ( buffer != null ) BufferPool.getBufferPool().returnBuffer(buffer);
    }
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:54,代码来源:GroupChannel.java

示例4: send

import org.apache.catalina.tribes.io.BufferPool; //导入依赖的package包/类
/**
 *
 * @param destination
 *            Member[] - destination.length > 0
 * @param msg
 *            Serializable - the message to send
 * @param options
 *            int - sender options, options can trigger guarantee levels and
 *            different interceptors to react to the message see class
 *            documentation for the <code>Channel</code> object.<br>
 * @param handler
 *            - callback object for error handling and completion
 *            notification, used when a message is sent asynchronously using
 *            the <code>Channel.SEND_OPTIONS_ASYNCHRONOUS</code> flag
 *            enabled.
 * @return UniqueId - the unique Id that was assigned to this message
 * @throws ChannelException
 *             - if an error occurs processing the message
 * @see org.apache.catalina.tribes.Channel
 */
@Override
public UniqueId send(Member[] destination, Serializable msg, int options, ErrorHandler handler)
		throws ChannelException {
	if (msg == null)
		throw new ChannelException("Cant send a NULL message");
	XByteBuffer buffer = null;
	try {
		if (destination == null || destination.length == 0)
			throw new ChannelException("No destination given");
		ChannelData data = new ChannelData(true);// generates a unique Id
		data.setAddress(getLocalMember(false));
		data.setTimestamp(System.currentTimeMillis());
		byte[] b = null;
		if (msg instanceof ByteMessage) {
			b = ((ByteMessage) msg).getMessage();
			options = options | SEND_OPTIONS_BYTE_MESSAGE;
		} else {
			b = XByteBuffer.serialize(msg);
			options = options & (~SEND_OPTIONS_BYTE_MESSAGE);
		}
		data.setOptions(options);
		// XByteBuffer buffer = new XByteBuffer(b.length+128,false);
		buffer = BufferPool.getBufferPool().getBuffer(b.length + 128, false);
		buffer.append(b, 0, b.length);
		data.setMessage(buffer);
		InterceptorPayload payload = null;
		if (handler != null) {
			payload = new InterceptorPayload();
			payload.setErrorHandler(handler);
		}
		getFirstInterceptor().sendMessage(destination, data, payload);
		if (Logs.MESSAGES.isTraceEnabled()) {
			Logs.MESSAGES.trace("GroupChannel - Sent msg:" + new UniqueId(data.getUniqueId()) + " at "
					+ new java.sql.Timestamp(System.currentTimeMillis()) + " to "
					+ Arrays.toNameString(destination));
			Logs.MESSAGES.trace("GroupChannel - Send Message:" + new UniqueId(data.getUniqueId()) + " is " + msg);
		}

		return new UniqueId(data.getUniqueId());
	} catch (Exception x) {
		if (x instanceof ChannelException)
			throw (ChannelException) x;
		throw new ChannelException(x);
	} finally {
		if (buffer != null)
			BufferPool.getBufferPool().returnBuffer(buffer);
	}
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:69,代码来源:GroupChannel.java

示例5: send

import org.apache.catalina.tribes.io.BufferPool; //导入依赖的package包/类
/**
 *
 * @param destination Member[] - destination.length > 1
 * @param msg Serializable - the message to send
 * @param options int - sender options, options can trigger guarantee levels and different interceptors to
 * react to the message see class documentation for the <code>Channel</code> object.<br>
 * @param handler - callback object for error handling and completion notification, used when a message is
 * sent asynchronously using the <code>Channel.SEND_OPTIONS_ASYNCHRONOUS</code> flag enabled.
 * @return UniqueId - the unique Id that was assigned to this message
 * @throws ChannelException - if an error occurs processing the message
 * @see org.apache.catalina.tribes.Channel
 */
@Override
public UniqueId send(Member[] destination, Serializable msg, int options, ErrorHandler handler) throws ChannelException {
    if ( msg == null ) throw new ChannelException("Cant send a NULL message");
    XByteBuffer buffer = null;
    try {
        if ( destination == null || destination.length == 0) throw new ChannelException("No destination given");
        ChannelData data = new ChannelData(true);//generates a unique Id
        data.setAddress(getLocalMember(false));
        data.setTimestamp(System.currentTimeMillis());
        byte[] b = null;
        if ( msg instanceof ByteMessage ){
            b = ((ByteMessage)msg).getMessage();
            options = options | SEND_OPTIONS_BYTE_MESSAGE;
        } else {
            b = XByteBuffer.serialize(msg);
            options = options & (~SEND_OPTIONS_BYTE_MESSAGE);
        }
        data.setOptions(options);
        //XByteBuffer buffer = new XByteBuffer(b.length+128,false);
        buffer = BufferPool.getBufferPool().getBuffer(b.length+128, false);
        buffer.append(b,0,b.length);
        data.setMessage(buffer);
        InterceptorPayload payload = null;
        if ( handler != null ) {
            payload = new InterceptorPayload();
            payload.setErrorHandler(handler);
        }
        getFirstInterceptor().sendMessage(destination, data, payload);
        if ( Logs.MESSAGES.isTraceEnabled() ) {
            Logs.MESSAGES.trace("GroupChannel - Sent msg:" + new UniqueId(data.getUniqueId()) + " at " +new java.sql.Timestamp(System.currentTimeMillis())+ " to "+Arrays.toNameString(destination));
            Logs.MESSAGES.trace("GroupChannel - Send Message:" + new UniqueId(data.getUniqueId()) + " is " +msg);
        }

        return new UniqueId(data.getUniqueId());
    }catch ( Exception x ) {
        if ( x instanceof ChannelException ) throw (ChannelException)x;
        throw new ChannelException(x);
    } finally {
        if ( buffer != null ) BufferPool.getBufferPool().returnBuffer(buffer);
    }
}
 
开发者ID:WhiteBearSolutions,项目名称:WBSAirback,代码行数:54,代码来源:GroupChannel.java


注:本文中的org.apache.catalina.tribes.io.BufferPool类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。