Hitachi

Cosminexus V11 アプリケーションサーバ Cosminexus Reliable Messaging


7.4.1 BytesMessageインタフェース

BytesMessageインタフェースはバイトストリームを含むメッセージを送受信するために使用します。BytesMessageインタフェースはMessageインタフェースを継承しているため,Messageインタフェースの機能を持っています。

〈この項の構成〉

(1) ペイロードの設定と取得

BytesMessageインタフェースを使用することによってペイロードを設定および取得できます。このペイロードはバイトストリームです。JMSメッセージの各要素については,「2.5.1 JMSメッセージの構成」を参照してください。

(2) 形式

public interface BytesMessage extends Message
{
  public boolean readBoolean() throws JMSException;
  public byte    readByte() throws JMSException;
  public int     readBytes(byte[] value) throws JMSException;
  public int     readBytes(byte[] value, int length)
                   throws JMSException;
  public char    readChar() throws JMSException;
  public double  readDouble() throws JMSException;
  public float   readFloat() throws JMSException;
  public int     readInt() throws JMSException;
  public long    readLong() throws JMSException;
  public short   readShort() throws JMSException;
  public int     readUnsignedByte() throws JMSException;
  public int     readUnsignedShort() throws JMSException;
  public java.lang.String
                 readUTF() throws JMSException;
  public void    reset() throws JMSException;
  public void    writeBoolean(boolean value) throws JMSException;
  public void    writeByte(byte value) throws JMSException;
  public void    writeBytes(byte[] value) throws JMSException;
  public void    writeBytes(byte[] value, int offset, int length)
                   throws JMSException;
  public void    writeChar(char value) throws JMSException;
  public void    writeDouble(double value) throws JMSException;
  public void    writeFloat(float value) throws JMSException;
  public void    writeInt(int value) throws JMSException;
  public void    writeLong(long value) throws JMSException;
  public void    writeObject(java.lang.Object value)
                   throws JMSException;
  public void    writeShort(short value) throws JMSException;
  public void    writeUTF(java.lang.String value) throws JMSException;
}

(3) フィールド

ありません。

(4) メソッド

「(2) 形式」に記載した順序で各メソッドを説明します。

(a) readBooleanメソッド

public boolean readBoolean() throws JMSException

バイトストリームからboolean型の値を読み取ります。

  • 引数

    ありません。

  • 戻り値

    読み取られたbooleanの値です。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageEOFException

    バイトストリームの予期しない終端に達しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(b) readByteメソッド

public byte readByte() throws JMSException

バイトストリームから符号付き8ビット値を読み取ります。

  • 引数

    ありません。

  • 戻り値

    符号付き8ビットとみなされるバイトストリームの次のバイト。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageEOFException

    バイトストリームの予期しない終端に達しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(c) readBytesメソッド

public int readBytes(byte[] value) throws JMSException

バイトストリームからバイト配列を読み取ります。バイトストリームの長さより配列valueの長さが短い場合,配列valueの長さまでのバイトストリームを読み取ることができます。残りのバイトストリームも再度メソッドを発行することによって配列valueの長さまで読み取ることができます。バイトストリームの長さより配列valueの長さが長い場合,バイトストリームをすべて読み取ることができます。

このとき,読み取られる総バイト数を示す戻り値は,配列valueの長さよりも短くなり,バイトストリームから読み取るバイトが残っていないことを表します。バイトストリームからさらに読み取りを実行すると,-1を返します。

  • 引数

    引数名

    説明

    value

    データの読み取り先のバッファ

  • 戻り値

    バッファに読み取られるバイトの総数。ストリームの終端に達してデータがなくなった場合は-1です。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(d) readBytesメソッド

public int readBytes(byte[] value, int length) throws JMSException

バイトストリームの一部を読み取ります。

  • 引数

    引数名

    説明

    value

    データの読み取り先のバッファ

    length

    読み取るバイト数(value.length以下)

  • 戻り値

    バッファに読み取られるバイトの総数。ストリームの終端に達してデータがなくなった場合は-1です。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(e) readCharメソッド

public char readChar() throws JMSException

バイトストリームからUnicode文字値を読み取ります。

  • 引数

    ありません。

  • 戻り値

    バイトストリームの次の2バイトで表されるUnicode文字。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageEOFException

    バイトストリームの予期しない終端に達しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(f) readDoubleメソッド

public double readDouble() throws JMSException

バイトストリームからdouble値を読み取ります。

  • 引数

    ありません。

  • 戻り値

    バイトストリームの次の8バイトをdoubleと解釈した値です。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageEOFException

    バイトストリームの予期しない終端に達しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(g) readFloatメソッド

public float readFloat() throws JMSException

バイトストリームからfloat値を読み取ります。

  • 引数

    ありません。

  • 戻り値

    バイトストリームの次の4バイトをfloatと解釈した値です。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageEOFException

    バイトストリームの予期しない終端に達しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(h) readIntメソッド

public int readInt() throws JMSException

バイトストリームから符号付き32ビット整数を読み取ります。

  • 引数

    ありません。

  • 戻り値

    バイトストリームの次の4バイトをintと解釈した値です。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageEOFException

    バイトストリームの予期しない終端に達しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(i) readLongメソッド

public long readLong() throws JMSException

バイトストリームから符号付き64ビット整数を読み取ります。

  • 引数

    ありません。

  • 戻り値

    バイトストリームの次の8バイトをlongと解釈した値です。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageEOFException

    バイトストリームの予期しない終端に達しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(j) readShortメソッド

public short readShort() throws JMSException

バイトストリームから符号付き16ビット数を読み取ります。

  • 引数

    ありません。

  • 戻り値

    バイトストリームの次の2バイトを符号付き16ビットと解釈した値です。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageEOFException

    バイトストリームの予期しない終端に達しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(k) readUnsignedByteメソッド

public int readUnsignedByte() throws JMSException

バイトストリームから符号なし8ビット数を読み取ります。

  • 引数

    ありません。

  • 戻り値

    バイトストリームの次のバイトを符号なし8ビットと解釈した値です。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageEOFException

    バイトストリームの予期しない終端に達しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(l) readUnsignedShortメソッド

public int readUnsignedShort() throws JMSException

バイトストリームから符号なし16ビット数を読み取ります。

  • 引数

    ありません。

  • 戻り値

    バイトストリームの次の2バイトを符号なし16ビット整数と解釈した値です。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageEOFException

    バイトストリームの予期しない終端に達しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(m) readUTFメソッド

public java.lang.String readUTF() throws JMSException

修正UTF-8形式を使用してエンコードされた文字列をバイトストリームから読み取ります。一度の発行で読み取られる文字列は65535バイトまでです。

  • 引数

    ありません。

  • 戻り値

    バイトストリームから読み取られたUnicode文字列。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。

    MessageEOFException

    バイトストリームの予期しない終端に達しました。

    MessageNotReadableException

    書き込み専用モードのペイロードから情報を読み取ろうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(n) resetメソッド

public void reset() throws JMSException

ペイロードを書き込み専用モードから読み取り専用モードに移行してから,バイトストリームを先頭に再配置します。

  • 引数

    ありません。

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージのリセットに失敗しました。

    MessageFormatException

    メッセージ形式不正が原因でメッセージのリセットに失敗しました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(o) writeBooleanメソッド

public void writeBoolean(boolean value) throws JMSException

booleanをバイトストリームに1バイト値として書き込みます。

  • 引数

    引数名

    説明

    value

    書き込まれるboolean値

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。

    MessageNotWriteableException

    読み取り専用モードのペイロードに情報を書き込もうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(p) writeByteメソッド

public void writeByte(byte value) throws JMSException

byteをバイトストリームに1バイト値として書き込みます。

  • 引数

    引数名

    説明

    value

    書き込まれるbyte値

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。

    MessageNotWriteableException

    読み取り専用モードのペイロードに情報を書き込もうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(q) writeBytesメソッド

public void writeBytes(byte[] value) throws JMSException

バイト配列をバイトストリームに書き込みます。

  • 引数

    引数名

    説明

    value

    書き込まれるバイト配列

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。

    MessageNotWriteableException

    読み取り専用モードのペイロードに情報を書き込もうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(r) writeBytesメソッド

public void writeBytes(byte[] value, int offset, int length)
  throws JMSException

バイト配列の一部をバイトストリームに書き込みます。

  • 引数

    引数名

    説明

    value

    書き込まれるバイト配列値

    offset

    バイト配列内の初期オフセット

    length

    書き込まれるバイト数

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。

    MessageNotWriteableException

    読み取り専用モードのペイロードに情報を書き込もうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(s) writeCharメソッド

public void writeChar(char value) throws JMSException

上位バイトを先頭とする2バイト値として,char型引数をバイトストリームに書き込みます。

  • 引数

    引数名

    説明

    value

    書き込まれるchar値

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。

    MessageNotWriteableException

    読み取り専用モードのペイロードに情報を書き込もうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(t) writeDoubleメソッド

public void writeDouble(double value) throws JMSException

Double.doubleToLongBits()メソッドを使用してdouble型引数をlongに変換し,上位バイトを先頭とする8バイトとして,long値をバイトストリームに書き込みます。

  • 引数

    引数名

    説明

    value

    書き込まれるdouble値

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。

    MessageNotWriteableException

    読み取り専用モードのペイロードに情報を書き込もうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(u) writeFloatメソッド

public void writeFloat(float value) throws JMSException

Float.floatToIntBits()メソッドを使用してfloat型引数をintに変換し,上位バイトを先頭とする4バイトとして,int値をバイトストリームに書き込みます。

  • 引数

    引数名

    説明

    value

    書き込まれるfloat値

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。

    MessageNotWriteableException

    読み取り専用モードのペイロードに情報を書き込もうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(v) writeIntメソッド

public void writeInt(int value) throws JMSException

上位バイトを先頭とする4バイト値として,int型引数をバイトストリームに書き込みます。

  • 引数

    引数名

    説明

    value

    書き込まれるint値

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。

    MessageNotWriteableException

    読み取り専用モードのペイロードに情報を書き込もうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(w) writeLongメソッド

public void writeLong(long value) throws JMSException

上位バイトを先頭とする8バイト値として,long型引数をバイトストリームに書き込みます。

  • 引数

    引数名

    説明

    value

    書き込まれるlong値

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。

    MessageNotWriteableException

    読み取り専用モードのペイロードに情報を書き込もうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(x) writeObjectメソッド

public void writeObject(java.lang.Object value) throws JMSException

オブジェクトをバイトストリームに書き込みます。引数に設定できる型はオブジェクト化されたプリミティブオブジェクト型(Integer,DoubleおよびLongなど),Stringオブジェクトおよびバイト配列だけです。

  • 引数

    引数名

    説明

    value

    書き込まれるJavaプログラミング言語のオブジェクト(Javaオブジェクト)

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    java.lang.NullPointerException

    引数の値がnullなので,ペイロードの書き込みに失敗しました。

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。

    MessageFormatException

    引数の型が無効なためペイロードの書き込みに失敗しました。

    MessageNotWriteableException

    読み取り専用モードのペイロードに情報を書き込もうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(y) writeShortメソッド

public void writeShort(short value) throws JMSException

上位バイトを先頭とする2バイト値として,short型引数をバイトストリームに書き込みます。

  • 引数

    引数名

    説明

    value

    書き込まれるshort値

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。

    MessageNotWriteableException

    読み取り専用モードのペイロードに情報を書き込もうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(z) writeUTFメソッド

public void writeUTF(java.lang.String value) throws JMSException

マシンに依存しないUTF-8エンコーディング形式を使用して,文字列をバイトストリームに書き込みます。一度の発行で書き込まれる文字列は65535バイトまでです。

  • 引数

    引数名

    説明

    value

    書き込まれるString型の値

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。

    MessageNotWriteableException

    読み取り専用モードのペイロードに情報を書き込もうとしました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。