可変長属性に後続空白のある文字を設定し、PSTEP USEのパラメータとして渡すと、Cアプリケーションでは、後続スペースがカットされる。

Document created by IKU-OSAKA Employee on Jul 24, 2015
Version 1Show Document
  • View in full screen mode

文書番号: JTEC001807

製品名: CA Gen

バージョン:CA Gen CGTS : r8.0

OS: 

 

◆ 詳細内容

現在のGenの仕様ではJAVAとCでクライアント・サーバ間で文字の後続に空白文字(スペース)が含んだフィールド値を受け渡す場合、後続スペースがカットされる場合と保持される場合があり、一貫性のない動作事象が存在しています。

 

一貫性のない動作事象につきましてQ&A形式で説明いたします。

 

Q: 可変長属性に後続空白のある文字を設定し、PSTEP USEのパラメータとして渡すと、

Cアプリケーションでは、後続スペースがカットされる。

Javaアプリケーションでは、後続スペースが保持される。

Cアプリケーションの動作は正しいですか?

 

A: 現在のGenの仕様ではJAVAとCで一貫性のない動作事象が存在しています。

しかしJAVAとCで一貫性を持たせる為に製品を変更することで、既存のアプリケーションへ与える影響やリスクが高いと判断し、この動作を変更しない事と決めさせていただきました。

 

以下のテストでは、可変長のテキスト属性ビューをクライアントからサーバに渡しサーバ側で後続スペースがどの様に変化するか、CONCATを行ってその結果を確認しました。

また、比較の為にクライアント側でもCONCATを行ってその結果を確認しました。

 

<Java クライアント ----> EJB サーバ>

 

 

EJB サーバ側

Concat(imp1 可変長フィールド, imp2可変長フィールド)

#1. (imp1ウィンドウ上のフィールドから)  

    'A'    +  'HELLO' = 'AHELLO'

#2. (imp1 リテラルから)   

    'A  ' +  'HELLO' = 'A  HELLO'

 

Java クライアント側      

Concat(imp1可変長フィールド, imp2可変長フィールド)

#3. (imp1 リテラルから)   

    'A  ' +  'HELLO' = 'A  HELLO'

 

<Java クライアント ----> C サーバ>

 

 

C サーバ側

Concat(imp1可変長フィールド, imp2可変長フィールド)

#4. (imp1 ウィンドウ上のフィールドから) 

    'A'   + 'HELLO' = 'AHELLO'

#5. (imp1 リテラルから)   

     'A  ' + 'HELLO' = 'AHELLO'

 

Java クライアント側  

 Concat(imp1可変長フィールド, imp2可変長フィールド)   

#6. (imp1 リテラルから)

       'A  '  + 'HELLO' = 'A  HELLO'

 

<GUI C クライアント ----> C サーバ>

 

 

C サーバ側

Concat(imp1可変長フィールド, imp2可変長フィールド)

#7. (imp1 ウィンドウ上のフィールドから)

      'A'   +  'HELLO' = 'AHELLO'

#8. (imp1 リテラルから)   

     'A  '  + 'HELLO' = 'AHELLO'

 

GUI C クライアント側     

 Concat(imp1可変長フィールド, imp2可変長フィールド)

#9. (imp1 リテラルから)  

    'A  '  + 'HELLO' = 'A  HELLO'

 

 

 

考察:

 

CONCATの一番目のフィールドに設定される値がウィンドウ上のフィールドからセットされた場合、後続スペースは常にカットされます。(#1,#4,#7)

全てのクライアント側では、後続スペースはカットされワせん。(#3,#6,#9)

CONCATの一番目のフィールドに設定される値がリテラルからセットされた場合、EJB サーバ側では後続スペースはカットされません。(#2)

CONCATの一番目のフィールドに設定される値がリテラルからセットされた場合、C サーバ側では後続スペースは常にカットされます。(#5,#8)

(EJB サーバ側とテスト結果が異なるケースです。)

 

 

 

この情報は米国 CA, Inc. より提供されている Technical Documentsをもとに作成したものです。原文の詳細につきましては下記内容をご覧ください。

 

Document ID:  TEC592430

Title:  How are trailing spaces in a variable length field treated during a Gen client/server flow?

https://support.ca.com/irj/portal/anonymous/redirArticles?reqPage=search&searchID=TEC592430

 

 

 

 

 

ご質問等がございましたら、恐れ入りますが弊社サポートまでご連絡ください。

Attachments

    Outcomes