現在H社のAIX(SJIS)のシステムをF社のRHEL6(SJIS)への移行を計画中です

業務アプリケーションは COBOL2002
データベースはORACLE 10GからORACLE11G

その他HULFTやFTPも使っています

実際に移行した方、ありましたら想定する問題点と解決策
その他注意事項等ありましたらよろしくお願いします

このQ&Aに関連する最新のQ&A

A 回答 (2件)

ちょうど似たようなことをやってます。

結果から言うと「結構大変」です。

まず、RHEL6はSJISサポートしていません。(※ベンダー個別のサポートは除いてます)

COBOL2002は日立サポートに確認するとよいと思います。RHEL6の設定次第では別のオプションソフトが必要となる場合があるようです(※ここは確証とれていないので、H社に確認するといいです)

COBOL資産のリコンパイルは必須です。オブジェクト移行しても動きません

Oracleは10G→11Gでいくつか非互換がありますので、それに該当しているアプリの造りかあるかどうか確認する必要があります。
DB系は再構築がよいと思います。Backup→Restoreでは復元できない可能性もあります。(ここは未確認)

HULFT、FTPは文字コードの設定が関係するので、まずはそこを解決してから・・・です。

AIXで使っているShellで非互換が出る、COBOLコンパイルでエラーが出るのは当然として、どこまで手を入れるか(PG変更する?Shell変更する?)がキーとなると思いますよ。
    • good
    • 1
この回答へのお礼

回答ありがとうございます
いただいた情報が大変参考になりました

お礼日時:2014/05/07 06:11

Oracle Databaseは、F社のNetCOBOLをサポートしません。


Oracle Databaseは、Micro Focus社製のCOBOLのみサポートします。

てか、こういうところでもらった回答を鵜呑みにします?
Oracle社に確認して下さい。Oracle Directでも回答してくれると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます

お礼日時:2014/05/07 06:09

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC言語のHP-UXからLinuxへのポーティング

C言語で開発されたプログラムをHP-UXからLinuxへのポーティングする場合、どのように行えば効率的でしょうか?
また、注意する内容があれば教えて頂けないでしょうか?

ポーティング前のOSはHP-UX(詳細不明)
ポーティング後のOSはRedHat Enterprise Linux 5.5 (64bit)
C言語で開発されたプログラムは、ソケット通信でサーバ間通信を行う機能となります

Aベストアンサー

unix系(linux含む)でポーティングの際におもに注意すべき点は以下の3つです。
1.OS固有の問題
2.32ビット版と64ビット版との違い
3.エンディアンの違い(ビッグエンディアンとリトルエンディアン)
今回は、どちらも64ビットなので、2については考慮しません。
1についてですが、
私がHP-UXからsolarisへ移植したときに、シグナルの動作が異なるときが
ありました。今回もし、シグナルを使用しているようでしたら、動作が
多少異なる覚悟をしておいたほうがよいかと思います。
また、IPC(セマフォ、メッセージキュー、共有メモリ)を使う場合、
共有メモリは、多少調整を行った記憶があります。
(hp-ux=>solaris=>linuxの移植で、hp-ux=>solarisはOK、
solaris=>linuxで多少の調整が必要でした)
結論としては、もしシグナルおよびIPCを使う場合、100%そのまま使用可能とは
考えないほうが良いです。
2についてですが、
HP-UXはビッグエンディアンのCPU(sunのsparc系など)であり、
red-hatはリトルエンディアン(intel系)のCPUになります。
このため、受信した電文がバイナリデータの場合、そのデータの中身を見るのであれば、
ビッグエンディアンからリトルエンディアンへの変換が必要になります。
データの中身は一切参照しないか、文字データなら変換の必要はありません。
また、IPアドレスおよびポート番号などは
htonl,htonsなどにより適切なエンディアンにする必要があります。
(HP-UXはビッグエンディアンなのでこのような操作(エンディアン変換)をしなくても正しく動作しますが、red-hatに移植すると動作しなくなる可能性があります。)
エンディアンの問題はソケット通信のプログラムだけでなく、そのデータを使用するほかのプログラムにも影響します。
エンディアンの問題は非常に重要ですので、もし、エンディアンについての知識が浅い場合は、
ネットで調査および自分で簡単なテストプログラムを作成し、十分に理解されることをお勧めします。

参考URL:http://www.katto.comm.waseda.ac.jp/~katto/Class/GazoTokuron/code/socket.html

unix系(linux含む)でポーティングの際におもに注意すべき点は以下の3つです。
1.OS固有の問題
2.32ビット版と64ビット版との違い
3.エンディアンの違い(ビッグエンディアンとリトルエンディアン)
今回は、どちらも64ビットなので、2については考慮しません。
1についてですが、
私がHP-UXからsolarisへ移植したときに、シグナルの動作が異なるときが
ありました。今回もし、シグナルを使用しているようでしたら、動作が
多少異なる覚悟をしておいたほうがよいかと思います。
また、IP...続きを読む

QHP-UX,LINUX、AIXの違いについて、教えてください.

 初歩的な質問ですみません。UNIXの中で、この3つの特徴の違いなど、比較したいのですが・・・お勧めのサイトなど、ありますでしょうか?または、どなたかご説明していただければ幸いです.
 抽象的で本当にすみません。よろしくお願いします.

Aベストアンサー

マニアックですがここ

参考URL:http://www.linet.gr.jp/~kojima/Plamo/ml.html

Qsqlplusで表示が変なので、出力を整形したい。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------

上記のように意味不明な形式で出てきます。

例えばこんな風に

select カラム1,カラム2,カラム3 from hoge;

カラム1 1の値
---------------------------
カラム2 2の値
---------------------------
カラム3 3の値

等のように分かりやすく表示できないでしょうか?

ちなみにOracle9iR2を使用しています。
sqlに関するツールは使用できないルールでして、あくまでsqlplusのコマンド上でみやすくしなければなりません。

分かりづらくですいませんが、皆さま、ご教授お願いします。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
-----------------------...続きを読む

Aベストアンサー

SQLPLUSを起動して、

SQL>set linesize 列数

でどうだ。

SQL>show linesize

で確認ができる。

Qunix-c と linux-c の違いは?

以前unix-cの仕事をしていましたが今度linux-cの仕事をすることに
なりました。

以前:unix(solaris)C言語
今回:linux(redhat)C言語

この2つの大きいな違い等がありましたらおしえてください。

Aベストアンサー

sparc版であれば、ビッグエンディアンになります。linuxは(通常)INTEL系のCPUなのでリトルエンディアンになります。
特に、spracで使用した(又は開発した)ライブラリなどをlinuxへ移植する場合、エンディアン依存のコーディングをしていると、移植したときに正しく動作しません。
・ビットフィールドを使用している
・通信でネットワークバイトオーダー(=ビッグエンディアン)の電文を扱っている
上記の場合、注意が必要です。
C言語自体は、普通の使い方をしていれば、特に違いを意識しなくても問題ないです。

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

Q秒を時分秒に変換する

EXCELで秒を時分秒に変換することは可能でしょうか?
19827635秒を何時間何分何秒に変換するもの

Aベストアンサー

A1に19827635秒が入っているとして
別のセルに
=TEXT(A1/24/60/60,"[h]時間mm分ss秒")
とすれば出きそうです。
5507時間40分35秒

Qcc と gcc の違い

CCとGCCの違いについて教えてください。
どちらも、コンパイラという点では同じだと思うのですが、なぜ2つの方式ができたのでしょうか??

少し話がずれますが、プログラムを汎用性も持たせるなら、どのようなオプションをつけるべきでしょうか?
-ansi とか -Wall あたりをつける癖をつけておけば十分なのでしょうか??

G++とGCCの違いについても知っていれば教えて下さい
初歩的な質問ですがお願いします

Aベストアンサー

GCCはそのコンパイラの固有名詞です。
http://gcc.gnu.org/ このサイトに解説があります。
ccは多くの場合そのシステムに標準で突いているコンパイラです。
そのOSのベンダが提供しているばあいもあれば、FreeBSDのように
中身はgccというものもあります。

g++とgccの違いはデフォルトでC++のファイルとして扱うか
というところが違うだけだったはずです。(多分)

Q索引の再構築をすべき?

とあるプロジェクトに放り込まれた新人SEです。
当該PJでは、客先にDBを構築して納入しているのですが、最近動作が遅くなってきたというクレームを耳にしました。調べてみると、特定のテーブルのSelect処理に時間がかかっているようです。問題のテーブルは、毎日数十万件のデータがInsertされ、一定の保持期限より古いデータは毎日削除されます。
問題はここからで、索引は設定されていますが、それをメンテしているという話を聞かないのです。
ちなみに、日付に対応するパーティションがあり、表・索引ともにパーティションで管理されています。毎日深夜に一番古いパーティションを削除し、翌日分のパーティションを新規作成するデーモンが動きます。
OracleSilver挑戦中の頭で一生懸命考えたのですが、納入から時間が経っているので索引が凄いことになっているのでは・・・という考えと、毎日新しいパーティションが生成されてるから大丈夫なのでは・・・という根拠の無い考えが渦巻いています。
アドバイス、お願いできますでしょうか。

Aベストアンサー

>CBOでは実行計画の最適化には統計情報が使われるのですか・・・!
>ということは、定期的にANALYZEしないとボケた実行計画を選択してしまう、ということですか。
>(ちなみにCBO or RBOは少し調べて理解したのですが、どこかで明示されているんでしょうか?)

CBOは、原則として、統計情報が必要です。
統計情報にあるテーブル/インデックスの特性と実態が異なるようなケースでは、
統計情報が悪さをして、まともな実行計画が立案できません。
なので、テーブルの登録内容が大きく変わる場合は、統計情報の更新を行う必要が
あります。
ただし、統計情報が一度も採取されていないテーブルやインデックスについては、
CBOは、類推して、実行計画を算定します。
これが偶々良い方向で実行計画に作用する場合も無いとは限りません。
少なくとも、大嘘付きの統計情報を使うくらいなら、ない方がましかもしれません。


現在どのオプティマイザを使っているかは、初期化パラメータに
指定があるはずです。(デフォルトはCHOOSE)
特定のSQLのみルールベースにしたり、コストベースオプティマイザの種類を変更したり
というのは、オプティマイザヒントで行えるので、統計情報が信頼できず、
統計情報の更新タイミングが持てないような運用の場合、ヒントで切り抜けるのが
ラクな解決法だと思います。
少なくとも、他への影響がないので。

>CBOでは実行計画の最適化には統計情報が使われるのですか・・・!
>ということは、定期的にANALYZEしないとボケた実行計画を選択してしまう、ということですか。
>(ちなみにCBO or RBOは少し調べて理解したのですが、どこかで明示されているんでしょうか?)

CBOは、原則として、統計情報が必要です。
統計情報にあるテーブル/インデックスの特性と実態が異なるようなケースでは、
統計情報が悪さをして、まともな実行計画が立案できません。
なので、テーブルの登録内容が大きく変わる場合は、統計情...続きを読む

QAIXの仮想環境

現在WindowsにAIXの仮想環境構築を考えています。
以下質問のご回答をよろしくお願い致します。

(1)VirtualPC、VMwareなどの仮想環境を構築するアプリケーションが存在していますが、AIXをインストールすることは可能なのでしょうか?

(2)VirtualPC等のようなAIXの仮想環境を構築するアプリケーションはありますでしょうか?

Aベストアンサー

(1) VirturalPCもVMwareも、インテル系CPUを使用したPCやサーバーで使うものです。それらでしか動作しません。AIXはIBMのPowerアーキテクチャのCPUのサーバーで使うものです。したがってインストールは無理です。

(2) 絶対ないとは言い切れませんが、多分ないです。AIXを動かすためには、IBMのeServerのpSeriesかiSeriesを買う必要があります。少し前にp5のローエンド機が30万円で期間限定で売ってたような気がします。現在だと新品だと60万円くらいですね。中古もあると思います。
http://www-06.ibm.com/systems/jp/p/shop/185/

QLinux(g++)とAIX(XL C++)の挙動の違いについて

以下のプログラムをg++とXL C++でコンパイルした場合に差異が生じており、困っています。
=========================================================
#include <stdio.h>
#include <stdlib.h>

class Abc
{
public:
Abc()
{
printf("コンストラクタCall\n");
}

void print()
{
printf("メソッドCall\n");
}
};

Abc abc;

int main()
{
abc.print();
return 0;
}
=========================================================
上記のようなソースの場合、g++でコンパイルしたものはメソッドがコールされる前にコンストラクタもコールされています。
しかし、XL C++でコンパイルするとコンストラクタはコールされるメソッドのみのコールとなります。

XL C++をg++の挙動と合わせたいのですが、コンパイル時のパラメータ設定等で解消できるものでしょうか?

御存知の方がいらっしゃいましたらよろしくお願い致します。

以下のプログラムをg++とXL C++でコンパイルした場合に差異が生じており、困っています。
=========================================================
#include <stdio.h>
#include <stdlib.h>

class Abc
{
public:
Abc()
{
printf("コンストラクタCall\n");
}

void print()
{
printf("メソッドCall\n");
}
};

Abc abc;

int main()
{
abc.print();
return 0;
}
=========================================================
上記のようなソースの場合、g+...続きを読む

Aベストアンサー

使ったことにないコンパイラなので言語仕様からの推測ですが、
もしかして確認手段の問題ではありませんか。

グローバル変数の初期化順という典型的な不定に起因していて、
「実際には両方ともコンストラクタが呼ばれている」が、
XL C++では、「コンストラクタが呼ばれた時点でまだ標準出力が準備できてない」ので、文字が表示されないだけなのではないでしょうか。
# まずprintfの戻り値を確認してみるとか、
# またはフラグなど別の手段で確認してみてください。

もしそうであれば、
・printfが単なる確認用で初期化は順不同でよいなら今のまま。
・順序に意味があるなら、グローバル変数のコンストラクタに順番を期待するのは間違いなので、グローバル変数を変える/コンストラクタを変える。
などで対応してください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング