tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルVB6+win10(64bit)+oo4o
記事No16267
投稿日: 2017/02/08(Wed) 10:31
投稿者えど
vb7,8年生です、初めて質問します。
クライアントOSリプレースに伴い検証を行っているのですが、
oo4o接続時にエラーが発生します。
レジストリやoracleフォルダの権限付与を行っても解消できず
どこに何を書きにいっているのか手詰まり状態です。
VB:VB6SP6
OS:サーバ(windows2008 R2 64bit)
    クライアント(windows10 64bit Enterprise2015 LTSB)
Oracle:サーバ(10.2.0.5 64bit)
        クライアント(11.2.0.1 32bit)
実行コード:Set obj = CreateObject("OracleInProcServer.XOrasession")
エラー:VBエラー70(書き込みできません。)
管理者権限では上記エラーは発生せず、
一般ユーザでのみ発生します。
Windows7環境では発生しておりません。
(2.9追記)一般ユーザで右クリック、管理者で実行でも
同様の事象が発生しました。

宜しくお願いします。

[ツリー表示へ]
タイトルRe: VB6+win10(64bit)+oo4o
記事No16268
投稿日: 2017/02/09(Thu) 11:40
投稿者魔界の仮面弁士
> vb7,8年生です
7〜8年前だと、.NET 4 がリリースされた頃でしょうか。
当時から既に、VB6 向けの情報はかなり減ってきていましたよね。

oo4o のサポートも 12c で打ち切られましたので、
今回は間に合わないにせよ、より大規模なリプレースも
今後に向けて計画しておくべきかも知れません;老婆心ながら。


> レジストリやoracleフォルダの権限付与を行っても解消できず

「oracleフォルダ」とは、どこのことでしょうか。

ORACLE_HOME でしょうか。それとも ORACLE_BASE でしょうか。
あるいは ORACLE_HOME\bin フォルダ? それとも ORACLE_HOME\NETWORK\ADMIN ?


> どこに何を書きにいっているのか手詰まり状態です。
Process Monitor で検知してみるとか。
https://blogs.msdn.microsoft.com/jpwdkblog/2013/09/27/process-monitor/

それと、権限付与後に OS の再起動を行っていないという事は無いでしょうか。
(何度かこれでハマってます…)


> エラー:VBエラー70(書き込みできません。)
「ActiveXコンポーネントはオブジェクトを作成できません。」では無いのですね。


> 実行コード:Set obj = CreateObject("OracleInProcServer.XOrasession")
Oracle Server に接続する段階ではなく、
Orasession の生成すらエラーになる、ということでしょうか。

CACLS %ORACLE_HOME%\BIN
のコマンドを実行した場合に、一般ユーザーが所属するグループに対して
F か R の権限が付与されていますか?

[ツリー表示へ]
タイトルRe^2: VB6+win10(64bit)+oo4o
記事No16269
投稿日: 2017/02/09(Thu) 14:20
投稿者えど
ご回答ありがとうございます。

> oo4o のサポートも 12c で打ち切られましたので、
> 今回は間に合わないにせよ、より大規模なリプレースも
> 今後に向けて計画しておくべきかも知れません;老婆心ながら。
こちらから提案はしているのですが…お客様の方針で今お金をかけたくないということなので。

> 「oracleフォルダ」とは、どこのことでしょうか。
>
> ORACLE_HOME でしょうか。それとも ORACLE_BASE でしょうか。
> あるいは ORACLE_HOME\bin フォルダ? それとも ORACLE_HOME\NETWORK\ADMIN ?
ORACLE_HOMEです。

> Process Monitor で検知してみるとか。
一度試してみます。

> それと、権限付与後に OS の再起動を行っていないという事は無いでしょうか。
> (何度かこれでハマってます…)
何日かに渡り検証をしており、PCは日々起動しています。

> 「ActiveXコンポーネントはオブジェクトを作成できません。」では無いのですね。
上記エラーは他サイトでも見受けられましたが、
それではありません。

> Oracle Server に接続する段階ではなく、
> Orasession の生成すらエラーになる、ということでしょうか。
接続までたどり着かず、objectの生成で
エラーになります。

> CACLS %ORACLE_HOME%\BIN
> のコマンドを実行した場合に、一般ユーザーが所属するグループに対して
> F か R の権限が付与されていますか?
端末の設定はお客様の部署でやっているのですが、
昨日うまくインストールされていないのではないかと
いう事象がありました。
ODBC接続をやってみようとODBCの設定をしたのですが、
一般ユーザだと正しくインストールしてくださいという
エラーが出たため、こちらでアンインストール、
インストールを実施中です。

ただ、アンインストール時にもいくつかのDLLが
存在しないというエラーが出たので、導入部署の
ミスの可能性を疑っています。

また結果が分かり次第、投稿します。

[ツリー表示へ]
タイトルRe^3: VB6+win10(64bit)+oo4o
記事No16270
投稿日: 2017/02/09(Thu) 16:43
投稿者魔界の仮面弁士
> ORACLE_HOMEです。

そこではなく、ORACLE_HOME\bin\ の権限を確認しておいて下さい。
コンテナ継承で bin の権限も書き換わっているとは思いますが、一応念のため。


それで駄目なら、oo4o の再登録を行ってみては如何でしょう。

oo4o を手動配置する場合の情報については、
ORACLE_HOME\oo4o\doc\ja\oracleo.hlp の
「再配布可能ファイル」に記載があります。

ただ、管理者権限で動くのなら、レジストリ的には問題は無く、
やはり権限周りの気はしますね…。
手間ではありますが、やはり Process Monitor で追跡した方が良いのかも。


> エラーが出たため、こちらでアンインストール、
> インストールを実施中です。

ORACLE_HOME が複数できてしまわないように注意して下さい。
oo4o は ORACLE_HOME の切替に対応していないので、
多重インストール時に誤動作を起こすことがあります。


> ODBC接続をやってみようとODBCの設定をしたのですが、
もし、クライアント OS が 64bit である場合、
C:\Windows\System32\odbcad32.exe ではなく
C:\Windows\SysWOW64\odbcad32.exe を使う必要があります。ご注意下さい。


> 今お金をかけたくないということなので。

その辺は、NT6.1 Server + "LTSB" Client な時点で何となく察し。(^^;

というわけで、「今」のお客様に対してではなく、
「今後」の計画を立てておいたほうが良いのかなーという話でして。
まぁ、未だに Win16 環境を残しているシステム屋の戯言です。

# 「今回」作ったシステムのサポート期限が満了した際に、
# 自社は完全に手を引くのか、それとも移行できるよう資料を
# 整備していくのかとか、諸々心配してみたり。
## とはいえ第三者が気にする話でも無いですし、無視してください。

[ツリー表示へ]
タイトルRe^4: VB6+win10(64bit)+oo4o
記事No16271
投稿日: 2017/02/10(Fri) 10:04
投稿者えど
昨日、お客様のインストール内容を再確認したところ、
一度同じORACLE_BASEの下に12cの64bitと
11gの32bitを入れていたようでした。
(レジストリ等もなくなっており、気付きませんでした。
もっと早く言ってほしかった…)

こちらに渡された時点では11gの32bitのみが
導入されている状態でしたので、共存していたと
わかりませんでしたが、11gのアンインストール
→インストールを行うと正常に接続できました。

12cのインストーラも頂き、試した結果は
以下の通りです。

12c:ORACLE_BASE=C:\oracle
     ORACLE_HOME=C:\oracle\product\12.1.0\client_1
11g:ORACLE_BASE=C:\oracle
     ORACLE_HOME=C:\oracle\product\11.2.0\client_1
→結果:失敗

一度両方ともアンインストールし、以下の内容で
再インストールを実施。

12c:ORACLE_BASE=C:\oracle\12c
     ORACLE_HOME=C:\oracle\12c\product\12.1.0\client_1
11g:ORACLE_BASE=C:\oracle\11g
     ORACLE_HOME=C:\oracle\11g\product\11.2.0\client_1
→結果:成功

仮面様、ご助言頂きありがとうございました。

今後の計画については、パートナー会社共々
前向きに検討、計画していきたいと思います。

[ツリー表示へ]