ページの先頭行へ戻る
Interstage Application Server OLTPサーバ運用ガイド

2.2.11 コード変換

  サーバ/クライアント間で、プラットフォームの違いによりアプリケーションのコード系が異なる場合、コード変換を行います。コード変換を行うことにより、サーバアプリケーション、クライアントアプリケーションともに、それぞれ任意のコード系でプログラミングすることができます。

2.2.11.1 コード変換のしくみ

  コード変換処理は、クライアント側で行います。クライアントとサーバのコード系が異なる場合、リクエスト送信時と、サーバからの返信受信時に行います。

コード変換処理の流れ

  処理の流れを以下に示します。

  1. クライアントアプリケーションは、ネーミングサービスからサーバアプリケーションのオブジェクトリファレンス(コード系情報付き)を獲得します。

  2. クライアントアプリケーションからのリクエスト発行時、オブジェクトリファレンスに格納されたサーバアプリケーションのコード系情報とクライアントアプリケーションのコード系情報(OD_CODE_SET環境変数に設定)が異なる場合、CORBAサービス(クライアント側、またはPortable-ORB)でコード変換を行います。

  3. CORBAサービスは、サーバアプリケーションのコード系でリクエストを送信します。

  4. サーバアプリケーションからの返信の受信時、CORBAサービスはクライアントアプリケーションのコード系情報にあわせてコード変換を行います。

  5. クライアントアプリケーションは、クライアント側のコード系に変換されたデータを受け取ります。

変換可能なコード系

  コード変換可能なコード系の組合せは、以下のとおりです。

コード系(*1)

UNICODE

UTF8

EUC(S90)

EUC(U90)

ShiftJIS

ShiftJIS MS

JEF ASCII

JEF英小文字

JEFカナ

UNICODE

UTF8(*4)

EUC

U90

SJIS

SJISMS

JEF_ASCII

JEF_LOWER

JEF_KANA

クライアント

UNICODE

(*2)

(*3)

(*3)

(*3)

UTF8(*4)

EUC

U90

SJIS

SJISMS

JEF_ASCII
JEF_LOWER
JEF_KANA

◯:コード変換対象    -:非対象(変換しない)

*1) 上段はコード系名称、下段はCORBAサービスで使用しているコード系指定値(OD_impl_instなどのコマンドとOD_CODE_SET環境変数で使用)を示します。コード系として“NONE”を指定すると、“コード系情報なし”とみなされ、クライアント・サーバのどちらかに指定されるとコード変換は行いません。

*2) クライアントとしてPortable-ORBを使用している場合、EUC(U90)が設定されているオブジェクトとのコード変換はできません。

*3) クライアントとしてPortable-ORBを使用している場合、以下のいずれかを使用する必要があります。なお、Interstage ApworksおよびInterstage Studioのバージョン・レベルについては、“使用上の注意”の“ソフトウェア条件”-“クライアント側のソフトウェア”-“その他”を参照してください。

*4) コード系としてUTF8を指定した場合、char/stringのコード系はUTF8として扱われますが、wchar/wstringのコード系はUNICODE(UCS-2)として扱われます。
  なお、コード系としてUTF8を使用する場合は、サーバ・クライアントの両方でUTF8に対応している必要があります。

データ型と開発言語

  コード変換は、以下のデータ型(IDLファイルに記述されたデータ型)を対象としています。

  各データ型で使用可能なコード系と開発言語の組合せを以下に示します。

表2.1 コード系と使用可能なデータ型/開発言語の対応

コード系
(指定値)

データ型 (1)

開発言語

(参考)
代表的なプラットフォーム

Java

C

C++

COBOL

OOCOBOL(7)

Visual Basic
(OLE連携)

UNICODE

string

×

×

×

×

×

共通(Java)

wchar,wstring

(2)

(2)

(3)

(3)

×

UTF8

char, string

×

×

Linux

wchar,wstring (6)

×

×

EUC

char,string,
wchar,wstring

×

(8)

(8)

×

Solaris

U90

char,string,
wchar,wstring (4)

×

(8)

(8)

×

Solaris

SJIS

char,string,
wchar,wstring

×

(8)

(8)

×

Solaris (HP)

SJISMS

char,string

×

(8)

(8)

Windows(R)

wchar,wstring

×

(8)

(8)

×

JEF_ASCII
JEF_LOWER
JEF_KANA

char,string

×

×

×

×

グローバルサーバ (5)

wchar,wstring

×

×

×

×

※ ○:使用可能    ×:使用不可

(1) char型で使用可能なコード系
(2) UNICODEコード系を扱う場合(C/C++)
(3) UNICODEコード系を扱う場合(COBOL/OOCOBOL)
(4) wchar/wstringで使用できないコード系
(5) グローバルサーバとの連携
(6) wchar/wstringのコード系
(7) OOCOBOLについて
(8) LinuxでのCOBOL/OOCOBOLについて

標準コード変換機能連携時に使用するコード

  ADJUSTまたはInterstage Charset Managerがインストールされている場合の、CORBAサービスが使用する標準コード変換機能のコード系は以下のとおりです。

CORBAのコード系
(指定値)

標準コード変換機能のコード系

UNICODE

UTF16BE(*1)

UTF8

UTF8_4(*1)

EUC

S90

U90

U90

SJIS

sjis

SJISMS

sjisms

JEF_ASCII

JefAscii

JEF_LOWER

JefAscii

JEF_KANA

Jefkana

*1)ADJUSTまたはInterstage Charset Managerが“UTF16BE”と“UTF8_4”のコード系をサポートしていない場合、CORBAサービスが使用するコード系は以下のとおりです。

  ADJUSTまたはInterstage Charset Managerがサポートしているコード系については、使用しているバージョンのADJUSTまたはInterstage Charset Managerのマニュアルを参照してください。
  ADJUSTまたはInterstage Charset Managerのバージョンを変更する際には、コード変換テーブルの設定を使用するコード系に合わせる必要がある場合がありますのでご注意願います。コード変換テーブルの設定方法の詳細については、ADJUSTまたはInterstage Charset Managerのマニュアルを参照してください。

2.2.11.2 サーバ側のコード系の設定

  サーバアプリケーションでコード系を使用している場合の設定方法を説明します。

CORBAアプリケーションの場合

  サーバアプリケーションで使用しているコード系をCORBAサービスに通知するため、オブジェクトリファレンスの作成時にコード系を指定します。オブジェクトリファレンスの作成方法には、以下の3つの方法があります。

  OD_or_admコマンドで-Lオプションを省略した場合、または関数を利用した場合、以下の規則にしたがってオブジェクトリファレンスにコード系が設定されます。

  1. OD_impl_instコマンドでサーバアプリケーションのコード系(locale)が設定された場合、この設定が使用されます。

  2. OD_impl_instコマンドでIORのバージョンが1.1(ior=1.1)に設定され、サーバアプリケーションのコード系(locale)が未設定の場合、コード系の暗黙値が設定されます。なお、コード系の暗黙値を設定する場合は、OD_set_envコマンドの-Lオプションを使用します。

  3. OD_impl_instコマンドでIORのバージョンが1.0(ior=1.0)に設定された場合、またはIORのバージョンが1.1(ior=1.1)でコード系の暗黙値が未定義の場合、コード系未設定となります。

  指定可能なコード系については、“変換可能なコード系”(表)を参照してください。

  関数を利用してオブジェクトを作成する場合は、OD_or_admコマンドで-Lオプションを省略した場合と同様のコード系が設定されます。

2.2.11.3 クライアント側のコード系の設定

  クライアントアプリケーションで使用しているコード系をCORBAサービスに通知するため、クライアント側で環境変数OD_CODE_SETにクライアントアプリケーションのコード系を設定します。

  以下に設定方法を示します。指定可能なコード系については、“変換可能なコード系”(表)を参照してください。

    > set OD_CODE_SET=コード系

    % setenv OD_CODE_SET コード系