問題タブ [zos]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - z/OS 上の C++ で C ソケット API を使用する方法
z/OS 上の C++ で C ソケット API を正しく動作させるのに問題があります。
を含めていますが、まだ定義されていないsys/socket.h
ことを示すコンパイル時エラーが発生します。AF_INET
明らかな何かが欠けているのでしょうか、それとも z/OS 上にあることが問題をより複雑にしているという事実に関係していますか?
#ifdef
私が打っているがあることを発見しました。どうやら、使用しているソケットの「タイプ」を定義しない限り、z/OS は満足していないようです。
個人的には、これ_OE_SOCKETS
が実際に何のためにあるのかわからないので、z/OS ソケット プログラマーがそこにいる場合 (3 人全員)、これがどのように機能するかの概要を教えていただけますか?
アプリのテスト
コンパイル/リンク出力:
sys/sockets.h のチェックには必要な定義が含まれており、私が知る限り、どの#ifdef
ステートメントによってもブロックされていません。
ただし、次のものが含まれていることに気付きました。
基本的にファイル全体をカプセル化するのはどれですか? それが重要かどうかはわかりません。
db2 - BizTalkDB2アダプター接続エラー
私の同僚は、DB2/MVSアダプターを介してBizTalk2006R2をz/OSメインフレームでホストされているデータベースに接続しようとしています。接続設定をテストすると、次のエラーが発生します
設定を通常の接続文字列に入れて.NETコードで開く場合は、問題ありません。私はBizTalkとDB2を初めて使用します。このエラーが発生したときに注意すべき点を誰かが提案できますか?
08年8月24日:
さて、通常のDB2接続文字列を持つ通常の.NETコードを使用すると、接続を確立してクエリを送信できます。このDB2アダプターが報告しているのは、クエリの送信は言うまでもなく、適切な接続ハンドシェイクを行うことさえできないということです。DB2接続を実現するために必要な実際のメカニズムは何かわかりません。
08年8月25日:
このMSDNフォーラムの投稿によると、ログインの問題のようです。
私はそれを見ました、そしてそれはここではそうではありません。ユーザー名をパッケージコレクションとして指定しても、同じ問題が発生します。
08年8月26日:
Microsoft製品からメインフレームDB2データベースへの接続に関する情報が不足しているため、生のネットワークパケットを検査して、.NET DB2プロバイダーの接続(機能する)とBizTalk2006DB2アダプターの間で何が起こっているかを把握する作業を行いました。 (爆弾)。DB2トラフィックがDRDAプロトコルを使用して行われていることを確認しました。そして最終的に、サーバーの応答SECCHKRMパケットに記録されているものが原因で、BizTalkアダプターメソッドが失敗すると結論付けました
.NETプロバイダーで成功しているときに同じクレデンシャルがここで失敗する理由は私を超えています。今、私が観察できるのは、転送されるパケットのシーケンスに関して、各メソッドの顕著な違いです。
.NETDB2プロバイダー
BizTalkDB2アダプター
.NETプロバイダーが単一のTCPセグメント内でさまざまなDRDAプロトコルパケットを発行するのを目撃するのは興味深いことです。一方、BizTalkアダプターは、TCPセグメントごとに1つのプロトコルパケットのみを配置します。なぜそうなのかわかりません。しかし、現時点ではそれは真っ赤なニシンであり、認証の失敗を引き起こす本当の違いはDRDAデータ交換にあると思います。私はDRDAプロトコルを知らないので、それをより理解する前にそれを研究する必要があります。
08年9月18日:
DB2 DBAチームからの協力とマイクロソフトからの支援を得ることは多くの障害に直面しているため、この段階ではまだ問題は解決されていません。
私が報告したいのは、接続が成功した場合と試行が失敗した場合のすべてのケースの間に、おそらく1つの重大な違いがあることを観察したことです。
BizTalk DB2アダプターは、基本的にMicrosoft ODBC DriverforDB2を使用しています。成功する他のソフトウェアテストでは、IBM DB2ODBCDRIVERまたはIBMDB2ODBC DRIVER –IBMCL1を使用します。IBMドライバーのパラメーター構成は、Microsoftのドライバーとは異なります。ただし、Microsoftドライバーの認証に失敗する可能性のある明らかに重大な違いは見られません。
migration - DB2 - NF (新機能) モードとは?
DB2 の NF モードについて、お客様にいくつか質問があります。グーグルはそれについてほとんど情報を持っていませんでした。
私は次のことを推測できましたが、完全には信頼できません...
- NF と CM (互換モード) は、メインフレーム上の DB2 v8 での設定です。
- CM の z/OS 上の DB2 v8 は、DB2 v8 を DB2 v7 のドロップイン代替として使用できるように設計されています。
- NF は、下位互換性を損なう多くの変更を行います。
- 特に、「データ ディクショナリ」システム テーブルは完全に作り直されています。
私は次のことを疑っていますが、それ以上は確信が持てません...
- 作り直されたデータ ディクショナリとシステム テーブルは、Linux/Unix/Windows 上の DB2 v8 で使用されるものと似ています。
- DB2 v8 NF は、DB2 v9 とほぼ互換性があります。
- DB2 v9 は、プラットフォーム間 (Linux/Unix/Windows およびメインフレーム) で一貫性が大幅に向上しています。
- DB2 v8 NF で動作するように記述されたコードは、通常、LUW 上の DB2 v8 およびどこでも DB2 v9 で正常に動作します。
私が正しいかどうか誰か教えてもらえますか?それとも詳細を追加しますか?
.net - IBM.Data.DB2
.NET フレームワークと IBM.Data.DB2 プロバイダーを使用して Windows アプリケーションを開発し、OS/390 で実行されている DB2 データベースにアクセスできますか?
前もって感謝します。
mainframe - Java/OOP/SQL の背景を持つメインフレームと JCL の学習
キャリア全体で、Java および ASP.Net アプリケーションとサーバーのコーディングと管理を行ってきました。現在、私は z/OS や JCL などのメインフレームに関与するよう指示されていますが、理解するのが難しいと感じています (彼らはまだパンチ カードについて話しているのです!)。現代のぜいたく品に完全に甘やかされてしまった後で、これらすべてを学ぶための最善の方法は何でしょうか?
sql - DB2 for z/OS へのストアード・プロシージャー呼び出しでストリング・リテラルがサポートされない
z/OS で実行されている DB2 DB インスタンスに接続しているときに、Rational Application Developer Data Perspective から単純な SP を呼び出すと、以下のエラーが発生します。SQuirreLからの呼び出し時も。単純な SQL クエリは問題なく実行されます。私のJAVAコードから呼び出された場合も、クエリは正常に機能します。
ローカル DB2 インスタンスで正常に動作しますが、これが可能かどうかは誰にもわかりませんか?
java - MVS システムから Java 環境に送られるデータを解釈するには、どのコードページ/文字セットを使用する必要がありますか?
興味深い問題が発生しました (レガシー システムとのやり取りではよくあることです)。私は、さまざまなシステムから要求を受け取ることができるアプリケーション (現在 x86 Linux または Windows システムで実行されている) に取り組んでおり、そのうちの 1 つが MVS システムです。
MVS システムからの要求データを解釈するためにどのコードページ/文字セットを使用する必要があるかを判断しようとしています。
以前、私は 'cp500' (IBM-500) を使用して z/OS システムに来るバイト日付を解釈しましたが、MVS は少し古いシステムであり、IBM が考えを変えたように見えたので心配です。使用するエンコーディングに関して一貫して (何十もの EBCDIC エンコーディングが存在する必要があります)、その cp500 は正しいエンコーディングではない可能性があります。
Java の文字セットについて私が見つけた最良のリソースはhttp://mindprod.com/jgloss/encodingです。しかし、このサイトと IBM Infocenters からは、明確な回答を得ることができませんでした。
編集:以下のPaxへの私の応答から追加:
私の質問には、リクエスト データの出所に明らかな穴がありました。この場合、データの発信元は Websphere MQ インターフェース経由です。Websphere MQ には適切なエンコーディングに変換するための機能がありますが、これは MQMessage.readString() を使用してデータを読み取るためのものであり、その後非推奨になりました。私はこれを使用したいと思いますが、キューから直接バイトを読み取る MQQueue からメッセージを読み取る方法を変更できない独自のインターフェイス フレームワークを使用しているため、ハンドル変換が残っています。
最終回答: これについてフォローアップしたいと思いました。正しい文字セットは確かに cp500 (IBM-500) であることがわかりました。ただし、結果は異なる可能性があるという印象を受けています。同じ問題を抱えている他の人のためのヒント:
Charset.availableCharsets(); を利用します。これにより、ランタイムでサポートされている文字セットのマップが表示されます。これらのセットを反復処理し、その文字セットに変換されたバイト データを出力しました。私が望んでいた答えは得られませんでしたが (主に、入ってくるデータを読み取ることができなかったため)、他の人にとっては役立つと思います。
サポートされている文字セットのリストについては、 http : //mindprod.com/jgloss/encodingを参照してください。
最後に、私はこれを確認していませんが、正しい JRE を使用していることを確認してください。IBM ランタイムは、OpenJDK や Sun のランタイムよりも多くの EBCDIC 文字セットをサポートしていると思います。
c - WTO を使用して Metal C から印刷する
Metal C の WTO 命令を使用して、"Hello World" をジョブ ログに出力しようとしています。これは、z/OS V1R10.0 Metal C Programming Guide and Reference のセクション 1.2.3.5 の例に基づいています。WTO を使用すると、0 を含むバッファまたは ASCII から EBCDIC への変換に問題があることがわかります。ジョブ ログの関連するセクションを以下に貼り付け、その後にコード、コンパイルできなかった IBM の例のコードを貼り付けました。ジョブログ
私のコード
IBMコード