2010年5月10日 (月)

Oracle Application Express 4.0 EA2 on Amazon EC2

タイトル通り、Oracle Application Express 4.0 EA2ってAmazon EC2上にあるみたいね。
とりあえず、いつものように、ユーザ登録とWorkspaceは取得済み、さて、なにしてあそぼ。

19

あ、ちなみに、Oracle11g R1 for Linux x86_64みたい。
26

| | コメント (0) | トラックバック (0)

2009年6月 8日 (月)

OraTweet 1.0 あそび始めた。

OraTweet v1.0が公開されたということなので早速試してみた。といってもちょっとだけ。細かいところはみてないけどとりあえずは日本語も使えるみたい。ちょうどPL/SQL gatewayからTwitter APIを使って遊んでみようと思っていたところだから少し遊ぶか。
Oratweet01_2

Oratweet02

| | コメント (0) | トラックバック (0)

2009年6月 5日 (金)

Leopard de Oracle10g R2 (Intel x86-64) #18 (APEX3.2と遊ぶ #11)

Oracle10g R2 10.2.0.4.0 for MacOSX (Intel x68-64)でAPEX3.2と遊ぶの第十話。

Oracle HTTP ServerとPL/SQL gatewayをORACLE_HOMEごとPowerMacからIntel Mac移動して、Intel Macへインストール、構築したOracle 10g R2 10.2.0.4.0 for MacOSX(Intel x86-64) + APEX3.2へアクセスしちゃいます。RosettaがPowerPC版のOracle HTTP Server mod_plsqlをIntel Mac上で動かしてくれます。


まず、MacBook Proのオラクル所有者の環境変数の設定などはLeopard de Oracle10g R2 (Intel x86-64) #2の設定に加え、Oracle HTTP Server向けaliasと環境変数を追加。
ちなみに、/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apexをIntel Mac上でのAPExのHOMEディレクトリとしてOracle HTTP Serverを起動、停止スクリプトをaliasとして定義。(Oracle 10g R1 10.1.0.3.0 for MacOSXのCompanionCDでインストールされるOracle HTTP Serverは ORACLE_HOME(Oracle HTTP Serverの)/opmn/bin/opmnctl stopall 又は startallではなくORACLE_HOME(Oracle HTTP Serverの)/Apache/Apache/bin/apachectl start又はstopで起動/停止できます。)

guppy:˜ oracle$ cat .bashrc
alias ll='ls -lv'
alias startohs='$ORACLE_HTMLDB_HOME/bin/apachectl start'
alias stopohs='$ORACLE_HTMLDB_HOME/bin/apachectl stop'

export LANG=ja_JP.UTF-8
export ORACLE_BASE=/Users/shared/u01/app/oracle
export ORACLE_SID=leopard1
export ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1
export NLS_LANG=Japanese_Japan.AL32UTF8
export DYLD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/network/lib:$DYLD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH

#for Oracle11g and Jdeveloper Oracle Middleware HOME
export ORACLE_MIDDLEWARE_HOME=/Users/Shared/Oracle/Middleware

#for Oracle10g R1 Oracle HTTP ServerHome (include mod_plsql)
export ORACLE_HTMLDB_HOME=/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache
guppy:˜ oracle$

次に、PowerPC上でzipしたORACLE HTTP ServerのORACLE_HOMEディレクトリ以下を丸ごとIntel Mac上のOracle HTTP ServerのあたらしいHOMEディレクトリへ移動します。移動方法はrcpでもいいし、環境によってはscpでもいいしUSBメモリ経由でもmobileme経由でもお好きな方法でIntel Macへコピー/解凍します。PowerPC上のORACLE HTTP Serverホームディレクトリ以下は不要なのでHOMEディレクトリごと削除するもよし、ちゃんとOUIで削除してもいいですよん。
以下、MacBook Pro上で解凍した状態。MacBook Pro上のあたらしいHOMEディレクトリは、/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex



1

APEX3.2のimagesディレクトリのコピー。
APEX3.2のimagesディレクトリでOracle HTTP Serverのホームディレクトリ/marvel以下にあるimagesディレクトリを置き換えます。
この作業はAPEXのアップデート作業でもよく作業なのでお忘れなく。HTML DB1.5をAPEX3.2にアップデートしたようなものなので。

guppy:apex oracle$ pwd
/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/marvel
guppy:marvel oracle$ ls
10ins.sql core doc ins.sql jlib readme.html upgrade.sql
builder coreins.sql images install.lst logs sbs utilities
guppy:marvel oracle$ mv images images_htmldb_1_5
guppy:marvel oracle$ cp -rf /Users/oracle/Downloads/apex/images .
guppy:marvel oracle$


.confファイルの変更
ここからがメイン。PowerPC上でインストール構築したので各種.confファイルなどのパスはホスト名がPowerPC上の値に設定されています。それら全てを移動してきたMacBook Pro(Intel x86)上の値に変更していきます。
最初はOracle HTTP Server向けコンフィグファイルから。(全てのconfファイルを確認し要変更と確定できた変更前の*.confファイルは、*.conf.15として退避しておくことにします。)

/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apexは、MacBook Pro上でのOracle HTTP Serverのホームディレクトリ。


guppy:conf oracle$ pwd

/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/conf
guppy:conf oracle$
guppy:conf oracle$ ll
total 680
-rwxr-xr-x 1 oracle oinstall 348 11 16 2004 access.conf
-rwxr-xr-x 1 oracle oinstall 348 11 16 2004 access.conf.default
-rw------- 1 oracle oinstall 1623 5 18 14:16 dms.conf
-rw------- 1 oracle oinstall 1633 5 18 14:14 dms.conf.15
-rw------- 1 oracle oinstall 1626 7 2 2004 dms.conf.sbs
-rwxr-xr-x 1 oracle oinstall 41721 5 18 14:41 httpd.conf
-rwxr-xr-x 1 oracle oinstall 42011 5 18 14:16 httpd.conf.15
-rwxr-xr-x 1 oracle oinstall 42011 5 17 12:23 httpd.conf.default
-rwxr-xr-x 1 oracle oinstall 39710 12 17 2004 httpd.conf.tmp
-rwxr-xr-x 1 oracle oinstall 12965 11 16 2004 magic
-rwxr-xr-x 1 oracle oinstall 12965 11 16 2004 magic.default
-rwxr-xr-x 1 oracle oinstall 15161 11 16 2004 mime.types
-rwxr-xr-x 1 oracle oinstall 15161 11 16 2004 mime.types.default
-rw-r--r-- 1 oracle oinstall 484 5 18 14:42 mod_oc4j.conf
-rw-r--r-- 1 oracle oinstall 490 5 18 14:41 mod_oc4j.conf.15
-rw-r--r-- 1 oracle oinstall 490 5 17 12:25 mod_oc4j.conf.default
-rw-r--r-- 1 oracle oinstall 503 7 2 2004 mod_oc4j.conf.tmp
-rwxr-xr-x 1 oracle oinstall 779 5 17 12:23 mod_osso.conf
-rwxr-xr-x 1 oracle oinstall 779 12 17 2004 mod_osso.conf.tmp
-rwxr-xr-x 1 oracle oinstall 323 5 17 12:23 ohs_opmn.xml
-rwxr-xr-x 1 oracle oinstall 323 12 17 2004 ohs_opmn.xml.sbs
-rwxr-xr-x 1 oracle oinstall 566 5 18 14:44 ohstarget.xml
-rwxr-xr-x 1 oracle oinstall 575 5 18 14:44 ohstarget.xml.15
-rwxr-xr-x 1 oracle oinstall 585 12 17 2004 ohstarget.xml.tmp
-rwxr-xr-x 1 oracle oinstall 197 5 18 14:45 oracle_apache.conf
-rwxr-xr-x 1 oracle oinstall 217 5 18 14:45 oracle_apache.conf.15
drwxr-xr-x 2 oracle oinstall 68 5 17 12:23 osso
-rwxr-xr-x 1 oracle oinstall 357 11 16 2004 srm.conf
-rwxr-xr-x 1 oracle oinstall 357 11 16 2004 srm.conf.default
-rwxr-xr-x 1 oracle oinstall 7861 5 18 14:51 ssl.conf
-rwxr-xr-x 1 oracle oinstall 8016 5 18 14:46 ssl.conf.15
-rwxr-xr-x 1 oracle oinstall 7192 12 17 2004 ssl.conf.tmp
drwxr-xr-x 4 oracle oinstall 136 5 17 12:23 ssl.crl
drwxr-xr-x 3 oracle oinstall 102 5 17 12:23 ssl.wlt
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$ ls *.*.15
dms.conf.15 httpd.conf.15 mod_oc4j.conf.15
ohstarget.xml.15 oracle_apache.conf.15 ssl.conf.15

guppy:conf oracle$
guppy:conf oracle$

以下、変更したconfファイルのdiff。


PowerPC上のORACLE_HOMEのパスとIntel Mac上のパスが異なるのでパス関連及び、ホスト名関連は変更対象。


例えば、PowerMac G5上でOracle HTTP Server用のORACLE_HOMEは

/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex


だったが、Intel Mac上では
/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex
とした。

guppy:conf oracle$
guppy:conf oracle$ diff dms.conf.15 dms.conf
30c30
< Alias /index.html /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/htdocs/index.html
---
> Alias /index.html /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/htdocs/index.html
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$ diff mod_oc4j.conf.15 mod_oc4j.conf
15c15
< Allow from localhost g5server g5server
---
> Allow from localhost guppy guppy
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$ diff ohstarget.xml.15 ohstarget.xml
5c5
< <Property NAME="OracleHome" VALUE="/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex"/>
---
> <Property NAME="OracleHome" VALUE="/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex" />
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$ diff httpd.conf.15 httpd.conf
65c65
< ServerRoot "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache"
---
> ServerRoot "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache"
76c76
< #LockFile /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/httpd.lock
---
> #LockFile /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/httpd.lock
82c82
< PidFile /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/httpd.pid
---
> PidFile /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/httpd.pid
90c90
< ScoreBoardFile /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/httpd.scoreboard
---
> ScoreBoardFile /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/httpd.scoreboard
321c321
< ServerName g5server
---
> ServerName guppy
328c328
< DocumentRoot "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/htdocs"
---
> DocumentRoot "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/htdocs"
353c353
< <Directory "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/htdocs">
---
> <Directory "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/htdocs">
456c456
< TypesConfig /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/conf/mime.types
---
> TypesConfig /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/conf/mime.types
482c482
< MIMEMagicFile /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/conf/magic
---
> MIMEMagicFile /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/conf/magic
502c502
< ErrorLog /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/error_log
---
> ErrorLog /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/error_log
547c547
< CustomLog /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/access_log common
---
> CustomLog /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/access_log common
553,554c553,554
< #CustomLog /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/referer_log referer
< #CustomLog /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/agent_log agent
---
> #CustomLog /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/referer_log referer
> #CustomLog /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/agent_log agent
560c560
< #CustomLog /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/access_log combined
---
> #CustomLog /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/access_log combined
582,584c582,584
< Alias /icons/ "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/icons/"
< Alias /jservdocs/ "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Jserv/docs/"
< Alias /javacachedocs/ "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/javacache/javadoc/"
---
> Alias /icons/ "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/icons/"
> Alias /jservdocs/ "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Jserv/docs/"
> Alias /javacachedocs/ "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/javacache/javadoc/"
586c586
< Alias /perl/ "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/cgi-bin/"
---
> Alias /perl/ "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/cgi-bin/"
589c589
< <Directory "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/icons">
---
> <Directory "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/icons">
604c604
< ScriptAlias /cgi-bin/ "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/cgi-bin/"
---
> ScriptAlias /cgi-bin/ "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/cgi-bin/"
608c608
< # "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/cgi-bin" should be changed to whatever your ScriptAliased
---
> # "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/cgi-bin" should be changed to whatever your ScriptAliased
611c611
< <Directory "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/cgi-bin">
---
> <Directory "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/cgi-bin">
824a825,826
> AddType text/xml .xbl
> AddType text/x-compoment .htc
938c940
< Allow from localhost g5server g5server
---
> Allow from localhost quppy guppy
950c952
< # Allow from localhost g5server g5server
---
> # Allow from localhsot guppy guppy
989c991
< # CacheRoot "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/proxy"
---
> # CacheRoot "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/proxy"
1038c1040
< SetEnv PERL5LIB "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/perl/lib/5.6.1:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/perl/lib/site_perl/5.6.1"
---
> SetEnv PERL5LIB "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/perl/lib/5.6.1:
/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/perl/lib/site_perl/5.6.1"
1047c1049
< # PerlSetEnv PERL5LIB "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/perl/lib/5.6.1:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/perl/lib/site_perl/5.6.1"
---
> # PerlSetEnv PERL5LIB "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/perl/lib/5.6.1:
/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/perl/lib/site_perl/5.6.1"
1084,1086c1086,1088
< Alias /fastcgi/ "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/fastcgi/"
< ScriptAlias /fcgi-bin/ "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/fcgi-bin/"
< <Directory "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/fcgi-bin">
---
> Alias /fastcgi/ "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/fastcgi/"
> ScriptAlias /fcgi-bin/ "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/fcgi-bin/"
> <Directory "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/fcgi-bin">
1104c1106
< #include "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Jserv/etc/jserv.conf"
---
> #include "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Jserv/etc/jserv.conf"
1128c1130
< Allow from localhost g5server g5server
---
> Allow from localhost guppy guppy
1134c1136
< Allow from localhost g5server g5server
---
> Allow from localhost guppy guppy
1139c1141
< include "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/conf/mod_oc4j.conf"
---
> include "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/conf/mod_oc4j.conf"
1142c1144
< include "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/conf/dms.conf"
---
> include "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/conf/dms.conf"
1148c1150
< include "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/conf/ssl.conf"
---
> include "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/conf/ssl.conf"
1151c1153
< #include "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/conf/mod_osso.conf"
---
> #include "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/conf/mod_osso.conf"
1154c1156
< include "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/conf/oracle_apache.conf"
---
> include "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/conf/oracle_apache.conf"
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$ diff oracle_apache.conf.15 oracle_apache.conf
1,2c1,2
< include "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf/plsql.conf"
< include "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf/marvel.conf"
---
> include "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/modplsql/conf/plsql.conf"
> include "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/modplsql/conf/marvel.conf"
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$ diff ssl.conf.15 ssl.conf
23,25c23,25
< #SSLSessionCache dbm:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/ssl_scache
< #SSLSessionCache shmht:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/ssl_scache(512000)
< SSLSessionCache shmcb:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/ssl_scache(512000)
---
> #SSLSessionCache dbm:/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/ssl_scache
> #SSLSessionCache shmht:/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/ssl_scache(512000)
> SSLSessionCache shmcb:/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/ssl_scache(512000)
36c36
< SSLMutex file:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/ssl_mutex
---
> SSLMutex file:/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/ssl_mutex
45c45
< SSLLog /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/ssl_engine_log
---
> SSLLog /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/ssl_engine_log
81,85c81,85
< DocumentRoot "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/htdocs"
< ServerName g5server
< ServerAdmin you@your.address
< ErrorLog /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/error_log
< TransferLog /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/access_log
---
> DocumentRoot "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/htdocs"
> ServerName guppy
> ServerAdmin your@mail.address
> ErrorLog /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/error_log
> TransferLog /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/access_log
100c100
< SSLWallet file:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/conf/ssl.wlt/default
---
> SSLWallet file/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/conf/ssl.wlt/default
117,118c117,118
< #SSLCARevocationPath /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/conf/ssl.crl
< #SSLCARevocationFile /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/conf/ssl.crl/ca-bundle.crl
---
> #SSLCARevocationPath /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/conf/ssl.crl
> #SSLCARevocationFile /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/conf/ssl.crl/ca-bundle.crl
177c177
< <Directory "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/cgi-bin">
---
> <Directory "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/cgi-bin">
186c186
< CustomLog /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/ssl_request_log \
---
> CustomLog /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/ssl_request_log \
guppy:conf oracle$


modplsql関連コンフィグファイルの変更
パスの変更とPlsqlDatabaseUsernameとPlsqlDefaultPageの値が変っているので注意。また接続先は、MacBook proにインストールしたOracle 10g R2 10.2.0.4.0 for MacOSX(Intel x86-64)になるので忘れずに変更する。

変更対象の.confファイルは予め、*.conf.15として退避しておいた。

guppy:conf oracle$ pwd
/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/modplsql/conf
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$ diff cache.conf.15 cache.conf
12c12
< PlsqlCacheDirectory /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/cache
---
> PlsqlCacheDirectory /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/modplsql/cache
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$ diff marvel.conf.15 marvel.conf
1,2c1,2
< Alias /i/ "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/marvel/images/"
< <Location /pls/htmldb>
---
> Alias /i/ "/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/marvel/images/"
> <Location /pls/apex>
7c7
< PlsqlDatabaseUsername HTMLDB_PUBLIC_USER
---
> PlsqlDatabaseUsername APEX_PUBLIC_USER
9,10c9,10
< PlsqlDatabaseConnectString localhost:1521:tiger.macdeoracle.info ServiceNameFormat
< PlsqlDefaultPage htmldb
---
> PlsqlDatabaseConnectString localhost:1521:leopard1.macdeoracle.jp ServiceNameFormat
> PlsqlDefaultPage apex
15c15
< PlsqlNLSLanguage AMERICAN_AMERICA.AL32UTF8
---
> PlsqlNLSLanguage JAPANESE_JAPAN..AL32UTF8
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$
guppy:conf oracle$ diff plsql.conf.15 plsql.conf
9c9
< LoadModule plsql_module /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/bin/modplsql.so
---
> LoadModule plsql_module /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/modplsql/bin/modplsql.so
20c20
< PlsqlLogDirectory /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/logs
---
> PlsqlLogDirectory /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/modplsql/logs
29c29
< include /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf/dads.conf
---
> include /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/modplsql/conf/dads.conf
34c34
< include /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf/cache.conf
---
> include /Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/modplsql/conf/cache.conf
guppy:conf oracle$


Oracle HTTP ServerのHOMEディレクトリ以下にあるtnsnames.oraもMacBook ProのOracle 10g R2へ接続するよう変更(念のため)

変更前のtnsnames.oraはtnsnames.ora.15として事前に退避しておいた。

guppy:admin oracle$ pwd
/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/network/admin
guppy:admin oracle$
guppy:admin oracle$
guppy:admin oracle$ guppy:admin oracle$ diff tnsnames.ora.15 tnsnames.ora
1c1
< (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=tiger.macdeoracle.info))) =
---
> (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=leopard1.macdeoracle.jp))) =
7,16c7
< (SERVICE_NAME = tiger.macdeoracle.info)
< )
< )
< (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=tiger.macdeoracle.info))) =
< (DESCRIPTION =
< (ADDRESS_LIST =
< (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
< )
< (CONNECT_DATA =
< (SERVICE_NAME = tiger.macdeoracle.info)
---
> (SERVICE_NAME = leopard1.macdeoracle.jp)
guppy:admin oracle$

apache起動用シェルスクリプトの書き換え(パスの変更が主)

要変更と判断したshell scriptは事前に、*.15として退避しておいた。

guppy:bin oracle$ pwd
/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/bin
guppy:bin oracle$
guppy:bin oracle$
guppy:bin oracle$ diff apachectl.15 apachectl
25,26c25,26
< ORACLE_HOME=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex; export ORACLE_HOME
< NLS_LANG=${NLS_LANG="JAPANESE_JAPAN.JA16EUC"}; export NLS_LANG
---
> ORACLE_HOME=/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex; export ORACLE_HOME
> NLS_LANG=${NLS_LANG="JAPANESE_JAPAN.AL32UTF8"}; export NLS_LANG
29c29
< PERL5LIB=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/perl/lib/5.8.3:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/perl/lib/site_perl/5.8.3 ; export PERL5LIB
---
> PERL5LIB=/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/perl/lib/5.8.3:
/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/perl/lib/site_perl/5.8.3; export PERL5LIB
32c32
< TNS_ADMIN=${TNS_ADMIN="/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/network/admin"}; export TNS_ADMIN
---
> TNS_ADMIN=${TNS_ADMIN="/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/network/admin"}; export TNS_ADMIN
37c37
< LD_LIBRARY_PATH=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/lib:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/opmn/lib ; export LD_LIBRARY_PATH
---
> LD_LIBRARY_PATH=/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/lib:
/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/opmn/lib; export LD_LIBRAR_PATH
39c39
< LD_LIBRARY_PATH=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/lib:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/opmn/lib:${LD_LIBRARY_PATH} ; export LD_LIBRARY_PATH
---
> LD_LIBRARY_PATH=/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/lib:
/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/opmn/lib:${LD_LIBRARY_PATH}; export LD_LIBRARY_PATH
45c45
< DYLD_LIBRARY_PATH=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/lib:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/opmn/lib ; export DYLD_LIBRARY_PATH
---
> DYLD_LIBRARY_PATH=/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/lib:
/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/opmn/lib; export DYLD_LIBRARY_PATH
47c47
< DYLD_LIBRARY_PATH=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/lib:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/opmn/lib:${DYLD_LIBRARY_PATH} ; export DYLD_LIBRARY_PATH
---
> DYLD_LIBRARY_PATH=/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/lib:
/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/opmn/lib:${DYLD_LIBRARY_PATH}; export DYLD_LIBRARY_PATH
52c52
< PIDFILE=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/httpd.pid
---
> PIDFILE=/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/httpd.pid
55c55
< HTTPD=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/bin/httpd
---
> HTTPD=/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/bin/httpd
91c91
< if eval $HTTPD -d /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache $args
---
> if eval $HTTPD -d /Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache $args
129c129
< if eval $HTTPD -d /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache $args
---
> if eval $HTTPD -d /Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache $args
149c149
< if eval $HTTPD -d /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache -t $args > /dev/null
---
> if eval $HTTPD -d /Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache -t $args > /del/null
261c261
< if eval $HTTPD -d /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache -t "$args"
---
> if eval $HTTPD -d /Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache -t "$args"
guppy:bin oracle$

以下、apachectlと同じディレクトリにあるが利用されているか不明なシェルスクリプトもとりあえず変更した。

guppy:bin oracle$
guppy:bin oracle$
guppy:bin oracle$ diff apxs.15 apxs
1c1
< #!/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/perl/bin/perl
---
> #!/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/perl/bin/perl
78,79c78,79
< my $CFG_PREFIX = q(/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache);
# substituted via APACI install
< my $CFG_SBINDIR = q(/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/bin);
# substituted via APACI install
---
> my $CFG_PREFIX = q(/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache);
> my $CFG_SBINDIR = q(/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/bin);
81,82c81,82
< my $CFG_LIBEXECDIR = q(/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/libexec);
# substituted via APACI install
< my $CFG_SYSCONFDIR = q(/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/conf);
# substituted via APACI install
---
> my $CFG_LIBEXECDIR = q(/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/libexec);
> my $CFG_SYSCONFDIR = q(/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/conf);
guppy:bin oracle$
guppy:bin oracle$
guppy:bin oracle$
guppy:bin oracle$ diff dbmmanage.15 dbmmanage
1c1
< #!/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/perl/bin/perl
---
> #!/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/perl/bin/perl
guppy:bin oracle$
guppy:bin oracle$
guppy:bin oracle$
guppy:bin oracle$ diff iasobf.15 iasobf
11c11
< ORACLE_HOME=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex
---
> ORACLE_HOME=/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex
guppy:bin oracle$
guppy:bin oracle$
guppy:bin oracle$
guppy:bin oracle$ diff log_server_status.15 log_server_status
1c1
< #!/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/perl/bin/perl
---
> #!/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/perl/bin/perl
70c70
< $wherelog = "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/graph/";
# Logs will be like "/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/logs/graph/19960312"
---
> $wherelog = "/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/graph/";
# Logs will be like "/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/logs/graph/19960312"
guppy:bin oracle$
guppy:bin oracle$
guppy:bin oracle$
guppy:bin oracle$ diff root_sh_append.sh.15 root_sh_append.sh
3c3
< ORACLE_HOME="/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex";export ORACLE_HOME
---
> ORACLE_HOME="/Users/shared/u01/app/oracle/oracle/product/10.1.0/apex"; export ORACLE_HOME
guppy:bin oracle$
guppy:bin oracle$
guppy:bin oracle$
guppy:bin oracle$ diff ssl2ossl.15 ssl2ossl
8c8
< ORACLE_HOME=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex
---
> ORACLE_HOME=Users/shared/u01/app/oracle/oracle/product/10.1.0/apex
guppy:bin oracle$


実行してみる(listenerおよびOracle Databaseインスタンスは起動ずみ)
尚、startohsは、apachectl startをalias定義しておいたもの(本エントリの最初の部分参照)

guppy:˜ oracle$ startohs
/Users/Shared/u01/app/oracle/oracle/product/10.1.0/apex/Apache/Apache/bin/apachectl start: httpd started
guppy:˜ oracle$


まずOralce HTTP Serverにアクセスしてみる・・・・OK.

4


APEX3.2の管理画面にアクセスしてログイン.....OK
ログインしたついでに開発ユーザと作業領域を作成しておく。


5

6

13

14


開発ユーザでログインしてみる。......OK。やった〜〜〜!!!!! うまくいった

15

16


最後にバージョン等も確認しておく。

3


19

「Oracle 10g R2 10.2.0.4.0 for MacOSX (Intel x86-64)で未サポートとなっているOracle HTTP ServerとPL/SQL gatewayをOracle 10g R1 10.1.0.3.0 for MacOSX (PowerPC)環境から移動し、Rosettaの力でそれらを動かしてAPEX3.2を使う!。」・・・・・一件落着。。。。次回はOraTweetでも遊んでみますか...


バックナンバー
Oracle10g R2 for MacOSX (Intel x86-64) released !!!
Leopard de Oracle10g release 2 (Intel x86-64)
Leopard de Oracle10g R2 (Intel x86-64) #1
Leopard de Oracle10g R2 (Intel x86-64) #2
Leopard de Oracle10g R2 (Intel x86-64) #3 (ちょいと寄り道)
Leopard de Oracle10g R2 (Intel x86-64) #4 (Companion CD installation)
Leopard de Oracle10g R2 (Intel x86-64) #5 (dbstart and dbshut does not work!! But....)
Leopard de Oracle10g R2 (Intel x86-64) #6 (onsがバグっている?件..)
Leopard de Oracle10g R2 (Intel x86-64) #7 (iSQL*Plusのメッセージがものすごく怖い件)
Leopard de Oracle10g R2 (Intel x86-64) #8 - (APEX3.2と遊ぶ #1)
Leopard de Oracle10g R2 (Intel x86-64) #9 - (APEX3.2と遊ぶ #2)
Leopard de Oracle10g R2 (Intel x86-64) #10 (APEX3.2と遊ぶ #3)
Leopard de Oracle10g R2 (Intel x86-64) #11 (APEX3.2と遊ぶ #4)
Leopard de Oracle10g R2 (Intel x86-64) #12 (APEX3.2と遊ぶ #5)
Leopard de Oracle10g R2 (Intel x86-64) #13 (APEX3.2と遊ぶ #6)
Leopard de Oracle10g R2 (Intel x86-64) #14 (APEX3.2と遊ぶ #7)
Leopard de Oracle10g R2 (Intel x86-64) #15 (APEX3.2と遊ぶ #8)
Leopard de Oracle10g R2 (Intel x86-64) #16 (APEX3.2と遊ぶ #9)
Leopard de Oracle10g R2 (Intel x86-64) #17 (APEX3.2と遊ぶ #10)

| | コメント (0) | トラックバック (0)

2009年6月 2日 (火)

Leopard de Oracle10g R2 (Intel x86-64) #17 (APEX3.2と遊ぶ #10)

Oracle10g R2 10.2.0.4.0 for MacOSX (Intel x68-64)でAPEX3.2と遊ぶの第九話。

Intel版MacへOracle HTTP ServerとPL/SQL gatewayをORACLE_HOMEごと移動するための環境作りとしてPowerPC上でOracle 10g R1 10.1.0.3.0 + Oracle HTTP Server + HTMLDB 1.5をインストール及び構成する。のづづき。
前回、HTMLDB 1.5の構成でエラーが発生したが今回はそれを解決後、再実行してHTMLDBのログイン画面にアクセスするまで




78


発生したエラーを確認すると、前々回の場合と同様にjavaへのパスがおかしなことになってる。

--------------------------------------
次のConfiguration Assistantが正常に完了していません。これらのアシスタントは、製品を完全に構成するため、完了する必要があります。
ファイル/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/cfgtoollogs/configToolCommandsを実行して、
スキップまたは失敗したすべてのConfiguration Assistantを再実行します。
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/jdk/jre/bin/java
-classpath /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/marvel/jlib/htmlDBConfigClasses.jar:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/jdbc/lib/classes12.jar:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/jdk/jre/lib/rt.jar:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/jlib/ojmisc.jar:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/oui/jlib/OraInstaller.jar: htmlDBConfig
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex
localhost 1521 tiger.macdeoracle.info SYSAUX * 保護された値。ログは取られません。
* * 保護された値。ログは取られません。 *
en,ja (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=tiger.macdeoracle.info)))
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/marvel
--------------------------------------

上記赤太字部分を実行してみると・・・・

G5Server:˜ oracle$ /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/jdk/jre/bin/java
-su: /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/jdk/jre/bin/java: No such file or directory
G5Server:˜ oracle$

javaが見えてないね。細かく見ていくとシンボリックリンクjreが原因。ただ前々回のようにconfigToolCommandsを変更して再実行することはできない。
理由はconfigToolCommands内に全てのパラメータが記録されていない(「保護された値。ログは取られません。」となっている部分があるから...

ということでjavaへパスが通るように修正・・・・・

Oracle HTTP ServerをインストールしたORACLE_HOME/jdkへ移動してシンボリックリンクjreを作り直す。

G5Server:˜ oracle$ cd /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/jdk
drwxr-xr-x 42 oracle oinstall 1428 May 17 12:22 bin
lrwxrwxr-x 1 oracle oinstall 26 May 17 12:22 include -> /Library/Java/Home/include
lrwxrwxr-x 1 oracle oinstall 22 May 17 12:22 jre -> /Library/Java/Home/jre
drwxr-xr-x 38 oracle oinstall 1292 May 17 12:22 lib
lrwxrwxr-x 1 oracle oinstall 22 May 17 12:22 man -> /Library/Java/Home/man
G5Server:˜/u01/app/oracle/product/10.1.0/apex/jdk oracle$ rm jre
G5Server:˜/u01/app/oracle/product/10.1.0/apex/jdk oracle$ ln -s /System/Library/Frameworks/JavaVM.framework/Home jre
G5Server:˜/u01/app/oracle/product/10.1.0/apex/jdk oracle$ ll
total 24
drwxr-xr-x 42 oracle oinstall 1428 May 17 12:22 bin
lrwxrwxr-x 1 oracle oinstall 26 May 17 12:22 include -> /Library/Java/Home/include
lrwxr-xr-x 1 oracle oinstall 48 May 17 12:58 jre -> /System/Library/Frameworks/JavaVM.framework/Home
drwxr-xr-x 38 oracle oinstall 1292 May 17 12:22 lib
lrwxrwxr-x 1 oracle oinstall 22 May 17 12:22 man -> /Library/Java/Home/man
G5Server:˜/u01/app/oracle/product/10.1.0/apex/jdk oracle$


次Oracle HTTP ServerをインストールしたORACLE_HOME/oui/binへ移動後、OUIを起動。HTMLDBだけを再インストール、構成しちゃえば解決!!(これが嫌な場合はJDK1.4.2か1.5をデフォルトにしておいた方が無難だと思う。(但し、それでこの問題が再現しなくなるか確認したわけではありません。)

また、念には念ということでJAVA_HOME環境変数へもシンボリックリンクjreへ設定したパスを設定しておいた。JAVA_HOMEの設定が必要なのかどうか? という点に関して、ちょいとヤッツケモードだったので本当に必要なのかどうか確認していません。m(_ _)m

G5Server:˜/u01/app/oracle/product/10.1.0/apex/oui/bin oracle$ pwd
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/oui/bin
G5Server:˜/u01/app/oracle/product/10.1.0/apex/oui/bin oracle$ ll
total 336
-rwxr-xr-x 1 oracle oinstall 412 May 17 12:22 addNode.sh
-rwxr-xr-x 1 oracle oinstall 20576 Aug 17 2004 lsnodes
drwxr-xr-x 12 oracle oinstall 408 May 17 12:22 resource
-rwxr-xr-x 1 oracle oinstall 136524 Aug 17 2004 runInstaller
-rwxr-xr-x 1 oracle oinstall 105 May 17 12:22 runInstaller.sh
G5Server:˜/u01/app/oracle/product/10.1.0/apex/oui/bin oracle$ export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
G5Server:˜/u01/app/oracle/product/10.1.0/apex/oui/bin oracle$ ./runInstaller &
[1] 7026
G5Server:˜/u01/app/oracle/product/10.1.0/apex/oui/bin oracle$ Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2009-05-17_01-26-05PM.
Please wait ...Oracle Universal Installer, バージョン 10.1.0.3.0 製品版
Copyright (C) 1999, 2004, Oracle. All rights reserved.

Executing install_name_tool...
Done Executing install_name_tool...



83

84

85

86

87

88

89

90

91

Oracle HTTP Serverにアクセスしてみると・・・OK.うまくいってる。
92

HTML DBにアクセスしてみる・・・OK .準備完了。
93

[1]+  Done                    ./runInstaller
G5Server:˜/u01/app/oracle/product/10.1.0/apex/oui/bin oracle$
G5Server:˜/u01/app/oracle/product/10.1.0/apex/oui/bin oracle$ unset JAVA_HOME
G5Server:˜/u01/app/oracle/product/10.1.0/apex/oui/bin oracle$


うまくいった。わははは!


さてPowerMac上での最後の作業は、Oracle HTTP Server+HTMLDBをインストールしたORACLE_HOMEごとIntel Macへ移動する前にmarvel.confのPlsqlDatabasePasswordを再設定しておきます。(OUIで設定したHTML DBのパスワードとIntel MacにインストールしたAPEX3.2のパスワードを同じパスワードにすればこの作業は不要だと思われます。また、パスワードが分からなくなった場合でもAPEX3.2のパスワードを再設定後、以下の方法でmarvel.confのPlsqlDatabasePasswordを再設定、暗号化すれば解決できます。)

Oracle HTTP Server+HTMLDBをインストールしたORACLE_HOME/Apache/modplsql/confに移動して....
(ちなみに、Oracle HTTP Serverはdads.confでもmarvel.confでも使えるようになっているが、HTML DBの構成情報はmarvel.confに書き込まれるためmarvel.confを編集している。)

G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$ pwd 
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf
G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$ cp dads.conf dads.conf.org
G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$ cp marvel.conf marvel.conf.org
G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$ cp marvel.conf dads.conf
G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$ export ORACLE_HOME=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex
G5Server:~˜u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$ perl dadTool.pl -o
----------------------------------------------------------------------------
Error : Cannot invoke utility 'dadobf'
Reason: The environment setting for PATH/LD_LIBRARY_PATH is not setup to load
the required libraries.
Action: Verify the environment settings needed for running this script


----------------------------------------------------------------------------
Hint: Use the '-h' option to get details on how to invoke the script
G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$ export PATH=$ORACLE_HOME:bin:.:$PATH
G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$ perl dadTool.pl -o

Information
----------------------------------------------------------------------------
Backed up older dads.conf as /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf/dads.conf.orig.2009-05-17_19-09

All passwords successfully obfuscated. New obfuscations : 0
G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$
Information
----------------------------------------------------------------------------
Backed up older dads.conf as /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf/dads.conf.orig.2009-05-17_19-11

All passwords successfully obfuscated. New obfuscations : 1
G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$
G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$ mv dads.conf marvel.conf
G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$ mv dads.conf.org dads.conf
G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$ diff marvel.conf.org marvel.conf
8c8
< PlsqlDatabasePassword apex
---
> PlsqlDatabasePassword @BTpCAhnG7HjcGKTr0ns63KI=
G5Server:˜/u01/app/oracle/product/10.1.0/apex/Apache/modplsql/conf oracle$

Oracle HTTP ServerとHTML DB(関連するPL/SQLパッケージを除く)のORACLE_HOMEごとIntel Macへの移動準備完了。Rosettaの力を借りる。To be continued!


バックナンバー
Oracle10g R2 for MacOSX (Intel x86-64) released !!!
Leopard de Oracle10g release 2 (Intel x86-64)
Leopard de Oracle10g R2 (Intel x86-64) #1
Leopard de Oracle10g R2 (Intel x86-64) #2
Leopard de Oracle10g R2 (Intel x86-64) #3 (ちょいと寄り道)
Leopard de Oracle10g R2 (Intel x86-64) #4 (Companion CD installation)
Leopard de Oracle10g R2 (Intel x86-64) #5 (dbstart and dbshut does not work!! But....)
Leopard de Oracle10g R2 (Intel x86-64) #6 (onsがバグっている?件..)
Leopard de Oracle10g R2 (Intel x86-64) #7 (iSQL*Plusのメッセージがものすごく怖い件)
Leopard de Oracle10g R2 (Intel x86-64) #8 - (APEX3.2と遊ぶ #1)
Leopard de Oracle10g R2 (Intel x86-64) #9 - (APEX3.2と遊ぶ #2)
Leopard de Oracle10g R2 (Intel x86-64) #10 (APEX3.2と遊ぶ #3)
Leopard de Oracle10g R2 (Intel x86-64) #11 (APEX3.2と遊ぶ #4)
Leopard de Oracle10g R2 (Intel x86-64) #12 (APEX3.2と遊ぶ #5)
Leopard de Oracle10g R2 (Intel x86-64) #13 (APEX3.2と遊ぶ #6)
Leopard de Oracle10g R2 (Intel x86-64) #14 (APEX3.2と遊ぶ #7)
Leopard de Oracle10g R2 (Intel x86-64) #15 (APEX3.2と遊ぶ #8)
Leopard de Oracle10g R2 (Intel x86-64) #16 (APEX3.2と遊ぶ #9)

| | コメント (0) | トラックバック (0)

2009年6月 1日 (月)

Leopard de Oracle10g R2 (Intel x86-64) #16 (APEX3.2と遊ぶ #9)

Oracle10g R2 10.2.0.4.0 for MacOSX (Intel x68-64)でAPEX3.2と遊ぶの第九話。

Intel版MacへOracle HTTP ServerとPL/SQL gatewayをORACLE_HOMEごと移動するための環境作りとしてPowerPC上でOracle 10g R1 10.1.0.3.0 + Oracle HTTP Server + HTMLDB 1.5をインストール及び構成する。のづづき。
CompanionCDからOracle HTTP ServerとHTMLDB(現在はAPEX)をインストール、構成しちゃいます。


OTNからOracle 10g R1 10.1.0.3.0 for MacOSX(PowerPC)のCompanion CDをダウンロード、解凍。解凍後に作成されるDisk1ディレクトリへ移動しOUIによるインストール、構成を行います。

G5Server:˜ oracle$ cd /Volumes/DiscusWork/temp/Disk1/ 
G5Server:/Volumes/DiscusWork/temp/Disk1 oracle$ ll
total 24
drwxr-xr-x 15 oracle oinstall 510 May 16 23:34 doc
drwxr-xr-x 7 oracle oinstall 238 May 16 23:34 fonts
drwxr-xr-x 12 oracle oinstall 408 May 16 23:34 install
-rwxr-xr-x 1 oracle oinstall 1259 Dec 17 2004 runInstaller
drwxr-xr-x 15 oracle oinstall 510 May 16 23:36 stage
-rwxr-xr-x 1 oracle oinstall 4188 Dec 17 2004 welcome.htm
G5Server:/Volumes/DiscusWork/temp/Disk1 oracle$ ./runInstaller &
[1] 5831
G5Server:/Volumes/DiscusWork/temp/Disk1 oracle$ Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.
・・・・以下略・・・・

以下、OUI各画面のスナップショット。インストール構成が今回のテーマではないのでポイントになる箇所以外解説はしていません。(過去の記事なども参考にしてみてください。)



60

61

ちなみに、インストールするORACLE_HOMEは他のDatabase等とは異なるディレクトリにするところがポイントですよん。
63

64

68

71

HTML DBのパスワードはIntel MacでインストールしたAPEX3.2で設定予定のパスワード(現時点では未設定)と同じにしておくと楽です。(異なっても問題はないです。)
それ以外の項目はこのデータベースのインストールで設定したりした値やパスワードです。
HTML DB(APEX)はSYSAUX以外の表領域でもいいですが、今回はSYSAUX以外にする必要はないのでSYSAUXにしてあります。

73_2

74

77

HTML DB Configuration Assistantでエラーが発生してますが、あとで再実行するのでここでは「OK」ボタンクリック後、エラーを無視してインストールを続行します。
78

79

お約束のroot.shの実行です。指示された場所にあるroot.shをrootユーザで実行します。が・・・・以前とは違いちょっとしたエラーが・・・・
80

お約束のroot.shを実行したら・・・・エラーですか・・・・
root_sh_append.shの該当行を見てみると・・・chownとchmodをfull path指定が間違っていたので修正。

G5Server:˜/u01/app/oracle/product/10.1.0/apex oracle$ sudo sh
Password:
sh-2.05b# /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/root.sh
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/
Apache/bin/root_sh_append.sh: line 7: /usr/bin/chown: No such file or directory
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/
Apache/bin/root_sh_append.sh: line 8: /usr/bin/chmod: No such file or directory
Running Oracle10 root.sh script...
¥nThe following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex

Enter the full pathname of the local bin directory: [/usr/local/bin]:

The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n) [n]:n
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]:n
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]:n

Adding entry to /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
sh-2.05b#
sh-2.05b# which chmod
/bin/chmod
sh-2.05b# which chown
/usr/sbin/chown
sh-2.05b#
sh-2.05b#

root_sh_append.shの修正内容

sh-2.05b#
sh-2.05b# vi /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/bin/root_sh_append.sh
sh-2.05b# diff /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/bin/root_sh_append.sh.org
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/Apache/Apache/bin/root_sh_append.sh
7,8c7,8
< /usr/bin/chown root $SSOMIGRATE
< /usr/bin/chmod 6750 $SSOMIGRATE
---
> chown root $SSOMIGRATE
> chmod 6750 $SSOMIGRATE
sh-2.05b#

root.shを再実行。(こんどは上手く行った)

sh-2.05b#
sh-2.05b#
sh-2.05b# /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex/root.sh
Running Oracle10 root.sh script...
¥nThe following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/apex

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n) [n]:n
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]:n
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]:n

Adding entry to /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
sh-2.05b#

root.shを実行したらOUIを終了しておわり。
81

82


以前は発生していなかったのですが、HTMLDB Configuration Assistantで問題が発生しました。原因は前々回と同じくJavaSE6.0 Developer Preview 1をデフォルトにしていることが影響しているようです。ということで解決方法なども含めて、To be continued.


バックナンバー
Oracle10g R2 for MacOSX (Intel x86-64) released !!!
Leopard de Oracle10g release 2 (Intel x86-64)
Leopard de Oracle10g R2 (Intel x86-64) #1
Leopard de Oracle10g R2 (Intel x86-64) #2
Leopard de Oracle10g R2 (Intel x86-64) #3 (ちょいと寄り道)
Leopard de Oracle10g R2 (Intel x86-64) #4 (Companion CD installation)
Leopard de Oracle10g R2 (Intel x86-64) #5 (dbstart and dbshut does not work!! But....)
Leopard de Oracle10g R2 (Intel x86-64) #6 (onsがバグっている?件..)
Leopard de Oracle10g R2 (Intel x86-64) #7 (iSQL*Plusのメッセージがものすごく怖い件)
Leopard de Oracle10g R2 (Intel x86-64) #8 - (APEX3.2と遊ぶ #1)
Leopard de Oracle10g R2 (Intel x86-64) #9 - (APEX3.2と遊ぶ #2)
Leopard de Oracle10g R2 (Intel x86-64) #10 (APEX3.2と遊ぶ #3)
Leopard de Oracle10g R2 (Intel x86-64) #11 (APEX3.2と遊ぶ #4)
Leopard de Oracle10g R2 (Intel x86-64) #12 (APEX3.2と遊ぶ #5)
Leopard de Oracle10g R2 (Intel x86-64) #13 (APEX3.2と遊ぶ #6)
Leopard de Oracle10g R2 (Intel x86-64) #14 (APEX3.2と遊ぶ #7)
Leopard de Oracle10g R2 (Intel x86-64) #15 (APEX3.2と遊ぶ #8)

| | コメント (0) | トラックバック (0)

2009年5月31日 (日)

Leopard de Oracle10g R2 (Intel x86-64) #15 (APEX3.2と遊ぶ #8)

Oracle10g R2 10.2.0.4.0 for MacOSX (Intel x68-64)でAPEX3.2と遊ぶの第八話。

Intel版MacへOracle HTTP ServerとPL/SQL gatewayをORACLE_HOMEごと移動するための環境作りとしてPowerPC上でOracle 10g R1 10.1.0.3.0 + Oracle HTTP Server + HTMLDB 1.5をインストール及び構成する。のづづき。
dbcaでデータベースインスタンスを作っちゃいます。Oracle10g R1 10.1.0.3.0 for MacOSXをMacOSX Tigerで動作させるためのお約束の作業から開始!


OTNからダウンロードできるOracle 10g R1 10.1.0.3.0 for MacOSX(PowerPC)MacOSX Tiger以降ではdbcaがこけて起動しないのでUS OTNのフォーラムでもおなじみの以下の方法で解決する。

G5Server:˜ oracle$ cd $ORACLE_HOME/lib
G5Server:˜/u01/app/oracle/product/10.1.0/tiger/lib oracle$ mv libnnz10.dylib libnnz10.dylib.org
G5Server:˜/u01/app/oracle/product/10.1.0/tiger/lib oracle$ relink all
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/bin/genclntsh
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/lib/nautab.o

・・・・中略・・・・

Enterprise Manager native components relinked
IMPORTANT NOTE: To complete this Install/upgrade, please login as root and
execute the root.sh script.
G5Server:˜/u01/app/oracle/product/10.1.0/tiger/lib oracle$ mv libnnz10.dylib.org libnnz10.dylib
G5Server:˜/u01/app/oracle/product/10.1.0/tiger/lib oracle$ cd
G5Server:˜ oracle$

relinkが済んだらdbcaを起動してデータベースを作成。

G5Server:˜ oracle$ dbca &
[1] 5600
G5Server:˜ oracle$

以下dbcaの各画面。dbcaの使い方は今回のメインネタじゃないので各画面毎の解説はしていません。Tiger Server de Oracle10gマニュアルを参考にしてくださいね。)



Dbca_1

Dbca_2

Dbca_3

Dbca_4

Dbca_5_2

Dbca_6

Dbca_7

Dbca_8

Dbca_9_2

Dbca_10_2

Dbca_11

Dbca_12

Dbca_13

Dbca_14

Dbca_15

Dbca_16

Dbca_17

Dbca_18

Dbca_21

Dbca_22


データベースが作成できたら、リスナーの状態を確認してデータベースインスタンスの起動を確認!

G5Server:˜ oracle$ lsnrctl status

LSNRCTL for MacOS X Server: Version 10.1.0.3.0 - Production on 17-5月 -2009 12:06:27

Copyright (c) 1991, 2004, Oracle. All rights reserved.

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=g5server)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for MacOS X Server: Version 10.1.0.3.0 - Production
開始日 17-5月 -2009 11:46:47
稼働時間 0 日 0 時間 19 分 40 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ・ファイル /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/admin/listener.ora
ログ・ファイル /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/log/listener.log
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=g5server)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=g5server)(PORT=8080))(Presentation=HTTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=g5server)(PORT=2100))(Presentation=FTP)(Session=RAW))
サービスのサマリー...
サービス"PLSExtProc"には、1件のインスタンスがあります。
インスタンス"PLSExtProc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
サービス"tiger.macdeoracle.info"には、1件のインスタンスがあります。
インスタンス"tiger"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"tigerXDB.macdeoracle.info"には、1件のインスタンスがあります。
インスタンス"tiger"、状態READYには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
G5Server:˜ oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 日 5月 17 12:06:32 2009

Copyright (c) 1982, 2004, Oracle. All rights reserved.

SQL> conn sys@tiger as sysdba
パスワードを入力してください:
接続されました。
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Prod
PL/SQL Release 10.1.0.3.0 - Production
CORE 10.1.0.3.0 Production
TNS for MacOS X Server: Version 10.1.0.3.0 - Production
NLSRTL Version 10.1.0.3.0 - Production

SQL> col comp_name for a50
SQL> set linesize 132
SQL> select comp_name,version,status from dba_registry;

COMP_NAME VERSION STATUS
-------------------------------------------------- ------------------------------ -----------
Oracle Database Catalog Views 10.1.0.3.0 VALID
Oracle Database Packages and Types 10.1.0.3.0 VALID
Oracle Workspace Manager 10.1.0.2.0 VALID
JServer JAVA Virtual Machine 10.1.0.3.0 VALID
Oracle XDK 10.1.0.3.0 VALID
Oracle Database Java Packages 10.1.0.3.0 VALID
Oracle Expression Filter 10.1.0.3.0 VALID
Oracle interMedia 10.1.0.3.0 VALID
Oracle Data Mining 10.1.0.3.0 VALID
Oracle Text 10.1.0.3.0 VALID
Oracle XML Database 10.1.0.3.0 VALID
OLAP Analytic Workspace 10.1.0.3.0 VALID
Oracle OLAP API 10.1.0.3.0 INVALID
OLAP Catalog 10.1.0.3.0 VALID
Spatial 10.1.0.3.0 VALID
Oracle Ultra Search 10.1.0.3.0 VALID
Oracle Enterprise Manager 10.1.0.3.0 VALID

17行が選択されました。

SQL>
SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS

SQL>


次回は当時HTMLDBと呼ばれていたAPEXとOracle HTTP ServerをPowerMac上でインストール、構成しちゃいます。

今回はここまで、To be continued.



バックナンバー
Oracle10g R2 for MacOSX (Intel x86-64) released !!!
Leopard de Oracle10g release 2 (Intel x86-64)
Leopard de Oracle10g R2 (Intel x86-64) #1
Leopard de Oracle10g R2 (Intel x86-64) #2
Leopard de Oracle10g R2 (Intel x86-64) #3 (ちょいと寄り道)
Leopard de Oracle10g R2 (Intel x86-64) #4 (Companion CD installation)
Leopard de Oracle10g R2 (Intel x86-64) #5 (dbstart and dbshut does not work!! But....)
Leopard de Oracle10g R2 (Intel x86-64) #6 (onsがバグっている?件..)
Leopard de Oracle10g R2 (Intel x86-64) #7 (iSQL*Plusのメッセージがものすごく怖い件)
Leopard de Oracle10g R2 (Intel x86-64) #8 - (APEX3.2と遊ぶ #1)
Leopard de Oracle10g R2 (Intel x86-64) #9 - (APEX3.2と遊ぶ #2)
Leopard de Oracle10g R2 (Intel x86-64) #10 (APEX3.2と遊ぶ #3)
Leopard de Oracle10g R2 (Intel x86-64) #11 (APEX3.2と遊ぶ #4)
Leopard de Oracle10g R2 (Intel x86-64) #12 (APEX3.2と遊ぶ #5)
Leopard de Oracle10g R2 (Intel x86-64) #13 (APEX3.2と遊ぶ #6)
Leopard de Oracle10g R2 (Intel x86-64) #14 (APEX3.2と遊ぶ #7)

| | コメント (0) | トラックバック (0)

Leopard de Oracle10g R2 (Intel x86-64) #14 (APEX3.2と遊ぶ #7)

Oracle10g R2 10.2.0.4.0 for MacOSX (Intel x68-64)でAPEX3.2と遊ぶの第七話。

Intel版MacへOracle HTTP ServerとPL/SQL gatewayをORACLE_HOMEごと移動するための環境作りとしてPowerPC上でOracle 10g R1 10.1.0.3.0 + Oracle HTTP Server + HTMLDB 1.5をインストール及び構成する。のづづき。
Oracle 10g R1 10.1.0.3.0のインストール中netcaがコケていた。ログから原因を探ると、デフォルトのJDKをJavaSE6.0 Developer Preview 1にしちゃっているのが原因でインストール時にORACLE_HOME内に作成されるjreのシンボリックリンクが正しく作成されていない。(java2 1.4.2のjreへのシンボリックリンクを作成しようとしているみたい・・・)

というところから...


以下、OUIの指示に従い
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/cfgtoollogs/configToolCommandsを実行してみると、/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jdk/jre//bin/javaがNo such file or directoryとなる。
どうもシンポリックリンク先にjreが存在していない。Tiger Server de Oracle10g を試した頃はJDK1.4.2をデフォルトにしていたのでこの問題は発生しなかったがJavaSE6.0 Developer Preview 1に変更してある影響なんだろう。

G5Server:˜ oracle$ /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/cfgtoollogs/configToolCommands
Oracle Net Configuration Assistant
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/cfgtoollogs/configToolCommands: line 2:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jdk/jre//bin/java: No such file or directory
G5Server:˜ oracle$


ということで、/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jdk/jre//bin/javaの部分をjavaに書き換えて再実行すればOK。

G5Server:/u01/app/oracle/product/10.1.0/tiger oracle$ 
--------------------------------------
次のConfiguration Assistantが正常に完了していません。これらのアシスタントは、製品を完全に構成するため、完了する必要があります。
ファイル/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/cfgtoollogs/configToolCommandsを実行して、
スキップまたは失敗したすべてのConfiguration Assistantを再実行します。
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jdk/jre//bin/java
-Duser.dir=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/jlib
-classpath /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jdk/jre//lib/i18n.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jdk/jre//lib/rt.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/ewt3.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/ewtcompat-3_3_15.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/netcfg.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/jlib/netcam.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/jlib/netca.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/help4.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/jewt4.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/oracle_ice.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/share.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/swingall-1_1_1.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/srvmhas.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/srvm.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/tools
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/ldapjclnt9.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/ldapjclnt10.jar
oracle.net.ca.NetCA /orahome /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger
/orahnam OraDb10g_tiger /instype custom /inscomp client,oraclenet,javavm,server
/insprtcl tcp /cfg local /authadp NO_VALUE /nodeinfo NO_VALUE /responseFile
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/install/netca_typ.rsp
--------------------------------------

G5Server:˜ oracle$
G5Server:˜ oracle$ cat /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/cfgtoollogs/configToolCommands
G5Server:˜ oracle$ java
-Duser.dir=/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/jlib
-classpath /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jdk/jre//lib/i18n.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jdk/jre//lib/rt.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/ewt3.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/ewtcompat-3_3_15.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/netcfg.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/jlib/netcam.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/jlib/netca.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/help4.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/jewt4.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/oracle_ice.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/share.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/swingall-1_1_1.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/srvmhas.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/srvm.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/tools
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/ldapjclnt9.jar
:/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/jlib/ldapjclnt10.jar
oracle.net.ca.NetCA /orahome /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger
/orahnam OraDb10g_tiger /instype custom /inscomp client,oraclenet,javavm,server
/insprtcl tcp /cfg local /authadp NO_VALUE /nodeinfo NO_VALUE /responseFile
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/install/netca_typ.rsp
コマンドライン引数の解析:
パラメータ "orahome" = /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger
パラメータ "orahnam" = OraDb10g_tiger
パラメータ "instype" = custom
パラメータ "inscomp" = client,oraclenet,javavm,server
パラメータ "insprtcl" = tcp
パラメータ "cfg" = local
パラメータ "authadp" = NO_VALUE
パラメータ "nodeinfo" = NO_VALUE
パラメータ "responsefile" = /Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/network/install/netca_typ.rsp
コマンドライン引数の解析が終了しました。
Oracle Net Servicesの構成:
デフォルトのローカル・ネーミング構成が完了しました。
次のリスナーを構成中:LISTENER
リスナーの構成が完了しました。
Oracle Net Listenerの起動:
リスナーの制御の実行:
/Volumes/Discus/4oracle/oracle/u01/app/oracle/product/10.1.0/tiger/bin/lsnrctl start LISTENER
リスナーの制御が完了しました。
リスナーの起動に成功しました。
プロファイルの構成が完了しました。
プロファイルの構成が完了しました。
デフォルトのローカル・ネーミング構成が完了しました。
作成されたネット・サービス名: tiger
Oracle Net Servicesの構成に成功しました。終了コードは次のとおりです。0
G5Server:˜ oracle$
G5Server:˜ oracle$

以下、netcaでlistenerとその構成中のスナップショット。(細かな解説は入れてませんのであしからず。)


Netca_1

Netca_2_2

Netca_3

Netca_4

Netca_5

Netca_6

Netca_7

Netca_8

Netca_9

Netca_10_2

Netca_11

Netca_12

Netca_13_2

Netca_14

Netca_15

Netca_16

Netca_16_2

Netca_17_2

Netca_18

次回はdbcaを利用したデータベース作成。

今回はここまで、To be continued.



バックナンバー
Oracle10g R2 for MacOSX (Intel x86-64) released !!!
Leopard de Oracle10g release 2 (Intel x86-64)
Leopard de Oracle10g R2 (Intel x86-64) #1
Leopard de Oracle10g R2 (Intel x86-64) #2
Leopard de Oracle10g R2 (Intel x86-64) #3 (ちょいと寄り道)
Leopard de Oracle10g R2 (Intel x86-64) #4 (Companion CD installation)
Leopard de Oracle10g R2 (Intel x86-64) #5 (dbstart and dbshut does not work!! But....)
Leopard de Oracle10g R2 (Intel x86-64) #6 (onsがバグっている?件..)
Leopard de Oracle10g R2 (Intel x86-64) #7 (iSQL*Plusのメッセージがものすごく怖い件)
Leopard de Oracle10g R2 (Intel x86-64) #8 - (APEX3.2と遊ぶ #1)
Leopard de Oracle10g R2 (Intel x86-64) #9 - (APEX3.2と遊ぶ #2)
Leopard de Oracle10g R2 (Intel x86-64) #10 (APEX3.2と遊ぶ #3)
Leopard de Oracle10g R2 (Intel x86-64) #11 (APEX3.2と遊ぶ #4)
Leopard de Oracle10g R2 (Intel x86-64) #12 (APEX3.2と遊ぶ #5)
Leopard de Oracle10g R2 (Intel x86-64) #13 (APEX3.2と遊ぶ #6)

| | コメント (0) | トラックバック (0)

2009年5月29日 (金)

Leopard de Oracle10g R2 (Intel x86-64) #13 (APEX3.2と遊ぶ #6)

Oracle10g R2 10.2.0.4.0 for MacOSX (Intel x68-64)でAPEX3.2と遊ぶの第六話。

Intel版MacへOracle HTTP ServerとPL/SQL gatewayをORACLE_HOMEごと移動するための環境作りとしてPowerPCの環境でOracle 10g R1 10.1.0.3.0 + Oracle HTTP Server + HTMLDB 1.5をインストール及び構成するところから。


MacOSX 10.4.11とJavaSE6.0 Developer Preview 1となっている事以外は、Tiger Server De Oracle10g その6と同じである。(ちなみにMacOSXのカーネルパラメータはTiger Server De Oracle10gをやっていた当時のままなので今回の手順ではさらりと書いておくことにした。)

Oracle所有者の環境変数やカーネルパラメータはインストレーションガイド以前のものを参考にしてみてね。

参考資料
Oracle Database 10g Release 1 (10.1) Documentation for Apple Mac OS X

ちなみに、今回の環境変数設定などは以下、あらかじめインストールするディレクトリなどは決めているので事前に設定しておいた。(MySQL関係のは気にしないでね。)


G5Server:˜ oracle$ cat .bash_profile
alias ls='ls -v'
alias ll='ls -vl'
alias startapex='$ORACLE_HOME/../apex/Apache/Apache/bin/apachectl start'
alias stopapex='$ORACLE_HOME/../apex/Apache/Apache/bin/apachectl stop'

umask 022

# oracle environment
TEMP=/tmp
TMPDIR=/tmp
ORACLE_BASE=/Volumes/Discus/4oracle/oracle/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.1.0/tiger
ORACLE_SID=tiger
NLS_LANG=Japanese_Japan.AL32UTF8
DYLD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$DYLD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:$PATH
export TEMP TMPDIR ORACLE_BASE ORACLE_HOME ORACLE_SID NLS_LANG DYLD_LIBRARY_PATH PATH

export MYSQL_HOME=/usr/local/mysql
export DATADIR=$MYSQL_HOME/data
export PATH=$MYSQL_HOME/bin:$PATH
G5Server:˜ oracle$

TerminalでunzipしてできるDisk1以下のrunInstallerを起動してOracledatabase 10g R1のインストール開始(Tiger Server de Oracle10gも見てね


Install_db_1

Install_db_2

Install_db_3

Install_db_4_2

Install_db_5

今回はデータベースそのものよりOracle HTTP ServerとAPEXがメインなので必要最低限のオプションだけにしてインストール時間の節約。
Install_db_6_2

Install_db_7

Install_db_8

Install_db_9

インストール時にデータベース作成は行わない。
Install_db_10

Install_db_11

Install_db_12

お約束のroot.shの実行要求が表示されたらTerminalからrootユーザでroot.shを実行する。
Install_db_13

Configuration Assistantの実行でnetcaの実行に失敗するが、JavaSE6.0 Developer Preview 1を利用していることが影響していると考えられる内容であったためエラーを無視してすすめる。(netcaはこの後、手動で実行すれば問題ないので。)
JDK1.4.2又はJavaSE5.0を使っているのならこのエラーには遭遇しないと(思われる)。


Install_db_14

Install_db_15

Install_db_16

Install_db_17_2



OracleDatabase 10g R1のインストールでTiger Server De Oracle10gの頃にはなかったエラーがnetcaの実行中に発生したがこれはJavaSE6.0 Developer Preview 1をデフォルトのJDKに設定している(詳細は次回)ことが影響しているようなのでOUIのインストールではエラーを無視し後でnetcaを手動実行する。

今回はここまで、To be continued.





バックナンバー

Oracle10g R2 for MacOSX (Intel x86-64) released !!!
Leopard de Oracle10g release 2 (Intel x86-64)
Leopard de Oracle10g R2 (Intel x86-64) #1
Leopard de Oracle10g R2 (Intel x86-64) #2
Leopard de Oracle10g R2 (Intel x86-64) #3 (ちょいと寄り道)
Leopard de Oracle10g R2 (Intel x86-64) #4 (Companion CD installation)
Leopard de Oracle10g R2 (Intel x86-64) #5 (dbstart and dbshut does not work!! But....)
Leopard de Oracle10g R2 (Intel x86-64) #6 (onsがバグっている?件..)
Leopard de Oracle10g R2 (Intel x86-64) #7 (iSQL*Plusのメッセージがものすごく怖い件)
Leopard de Oracle10g R2 (Intel x86-64) #8 - (APEX3.2と遊ぶ #1)
Leopard de Oracle10g R2 (Intel x86-64) #9 - (APEX3.2と遊ぶ #2)
Leopard de Oracle10g R2 (Intel x86-64) #10 (APEX3.2と遊ぶ #3)
Leopard de Oracle10g R2 (Intel x86-64) #11 (APEX3.2と遊ぶ #4)
Leopard de Oracle10g R2 (Intel x86-64) #12 (APEX3.2と遊ぶ #5)

| | コメント (0) | トラックバック (0)

2009年5月27日 (水)

Leopard de Oracle10g R2 (Intel x86-64) #12 (APEX3.2と遊ぶ #5)

随分間が空いてしまったが、Oracle10g R2 10.2.0.4.0 for MacOSX (Intel x68-64)でAPEX3.2と遊ぶの第五話。

前回PowerMac G5へインストールしたOracle HTTP ServerとPL/SQL GatewayをそのままIntel Macへ移植移動しただけでOracle HTTP Server+PL/SQL gateway+Oracle Application Express3.2が動作した結果だけをお見せしたが、今回はその手順を。

前提としてIntel Mac以外に、PowerPC版のMacとMacOSX Tiger 10.4.11(ServerでもClient版でも可。)が必要。おそらく、PowerPC版MacはPantherでも可能(だと思う)。


手順の概要

PowerMac G5 (MacOSX Tiger Server 10.4.11)へ、Oracle 10g R1 10.1.0.3.0 for MacOSX (PowerPC版)のDatabase及び、CompanionCDよりOracle HTTP ServerとAPEX(当時はHTMLDBと呼ばれていた)をインストール及び構成(起動するところまで確認)後、Oracle HTTP Server用のORACLE_HOMEディレクトリをまるごとOracle 10g R2 10.2.0.4.0 for MacOSX(Intel x86-64)及びAPEX3.2インストール済みのMacBook Pro - MacOSX Leopard 10.5.6へ移動しコンフィグファイルを書き換えIntel Mac上で未サポート扱いのOracle HTTP Server + PL/SQL gateway + APEX3.2を使えるようにする。

まず、PowerMacの情報

gccは3.3を使うのでそれ以外の場合はgcc_selectで変更する。また、javaに関してはOracle10g R1のリリース当時はJDK1.4.2だったが、以前デフォルトをJavaSE6.0 Developer Preview 1へ切り替えたままで行うことにした。PowerPC版Macの場合JavaSE6.0は正式にリリースされていないのでJavaSE5.0までのほうが問題は少ない。。はずだが。

G5Server:˜ oracle$ sw_vers
ProductName: Mac OS X Server
ProductVersion: 10.4.11
BuildVersion: 8S169
G5Server:˜ oracle$
G5Server:˜ oracle$ uname -a
Darwin G5Server 8.11.0 Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007;
root:xnu-792.24.17˜1/RELEASE_PPC Power Macintosh powerpc
G5Server:˜ oracle$
G5Server:˜ oracle$
G5Server:˜ oracle$ /usr/sbin/system_profiler SPHardwareDataType | grep CPU
CPU Type: PowerPC G5 (3.1)
Number Of CPUs: 2
CPU Speed: 2.7 GHz
L2 Cache (per CPU): 512 KB
G5Server:˜ oracle$
G5Server:˜ oracle$
G5Server:˜ oracle$ /usr/sbin/system_profiler SPApplicationsDataType | grep Xcode
Xcode:
Get Info String: Xcode version 2.4.1
Location: /Developer/Applications/Xcode.app

G5Server:˜ oracle$
G5Server:˜ oracle$ gcc --version
powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

G5Server:˜ oracle$
G5Server:˜ oracle$ gcc_select -l
Available compiler versions:
3.3 3.3-fast 4.0

G5Server:˜ oracle$
G5Server:˜ oracle$ sudo gcc_select 3.3
Password:
Default compiler has been set to:
gcc version 3.3 20030304 (Apple Computer, Inc. build 1819)
G5Server:˜ oracle$
G5Server:˜ oracle$ gcc -v
Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs
Thread model: posix
gcc version 3.3 20030304 (Apple Computer, Inc. build 1819)
G5Server:˜ oracle$

G5Server:˜ oracle$
G5Server:˜ oracle$ java -version
java version "1.6.0-dp"
Java(TM) SE Runtime Environment (build 1.6.0-dp-b88-34)
Java HotSpot(TM) Core VM (build 1.6.0-b88-17-release, interpreted mode)
G5Server:˜ oracle$

次に、Intel Macの情報

Oracle 10g R2 10.2.0.4.0 for MacOSX(intel x86-64)インストール時のまま。

Macintosh:˜ discus$ /usr/sbin/system_profiler SPHardwareDataType | grep -E '(Processor|Cores|Memory)'
Processor Name: Intel Core 2 Duo
Processor Speed: 2.2 GHz
Number Of Processors: 1
Total Number Of Cores: 2
Memory: 2 GB
Macintosh:˜ discus$
Macintosh:˜ discus$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.5.6
BuildVersion: 9G55
Macintosh:˜ discus$
Macintosh:˜ discus$ uname -a
Darwin Macintosh.local 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00
PST 2008; root:xnu-1228.9.59˜1/RELEASE_I386 i386
Macintosh:˜ discus$
Macintosh:˜ discus$ gcc --version
i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5488)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Macintosh:˜ discus$
Macintosh:˜ discus$ java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06-153)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_07-b06-57, mixed mode)
Macintosh:˜ discus$
Macintosh:˜ discus$ system_profiler SPApplicationsDataType | grep Xcode
Xcode:
Get Info String: Xcode version 3.1.1
Location: /Developer/Applications/Xcode.app
Macintosh:˜ discus$

長くなるので(というより息子が風邪(フツーの)で保育園に行けない。しかも熱が37度台になってきたので走り回ってたり私が集中できないという理由もあり)今日はここまで、次回へつづく。:)

もう、そろそろ昼寝していた息子が起きそうだ...相手してやらないと・・・





バックナンバー

Oracle10g R2 for MacOSX (Intel x86-64) released !!!
Leopard de Oracle10g release 2 (Intel x86-64)
Leopard de Oracle10g R2 (Intel x86-64) #1
Leopard de Oracle10g R2 (Intel x86-64) #2
Leopard de Oracle10g R2 (Intel x86-64) #3 (ちょいと寄り道)
Leopard de Oracle10g R2 (Intel x86-64) #4 (Companion CD installation)
Leopard de Oracle10g R2 (Intel x86-64) #5 (dbstart and dbshut does not work!! But....)
Leopard de Oracle10g R2 (Intel x86-64) #6 (onsがバグっている?件..)
Leopard de Oracle10g R2 (Intel x86-64) #7 (iSQL*Plusのメッセージがものすごく怖い件)
Leopard de Oracle10g R2 (Intel x86-64) #8 - (APEX3.2と遊ぶ #1)
Leopard de Oracle10g R2 (Intel x86-64) #9 - (APEX3.2と遊ぶ #2)
Leopard de Oracle10g R2 (Intel x86-64) #10 (APEX3.2と遊ぶ #3)
Leopard de Oracle10g R2 (Intel x86-64) #11 (APEX3.2と遊ぶ #4)

| | コメント (0) | トラックバック (0)

2009年5月18日 (月)

Leopard de Oracle10g R2 (Intel x86-64) #11 (APEX3.2と遊ぶ #4)

Oracle10g R2 10.2.0.4.0 for MacOSX (Intel x68-64)でAPEX3.2と遊ぶの第四話。

前回、Rosettaの力を借りて、PowerPC版のMacへインストールしたOracle HTTP Server + PL/SQL gatewayをIntel x86版のMacへHomeディレクトリごと移動してしまえば動作するだろう。(但し、構成ファイル等は手動で手直しする必要あり)と書いたが、試してみたところ上手く動作した。Rosetta やっぱり、すげー!(Rosettaを作ったTransitive社はIBMに買収された。

手順は長くなるので次回にするが、環境と動作したスナップショットを。。。。


クリックで拡大表示します。


Ohs_apex_version1

Ohs_apex_version2


環境

Oracle HTTP ServerとPL/SQL gatewayをインストールしたMac (PowerPC)
 ---- PowerMac G5 (PowerPC G5 Dual 2.7Ghz / MacOSX Tiger Server 10.4.11)

PowerPCへインストールしたOracle HTTP ServerとPL/SQL gatewayの移動先のMac (Intel x86)
 ---- MacBook Pro (Intel Core 2 Duo 2.2Ghz / MacOSX Leopard 10.5.6)


今日はここまで、次回へつづく。:)




バックナンバー

Oracle10g R2 for MacOSX (Intel x86-64) released !!!
Leopard de Oracle10g release 2 (Intel x86-64)
Leopard de Oracle10g R2 (Intel x86-64) #1
Leopard de Oracle10g R2 (Intel x86-64) #2
Leopard de Oracle10g R2 (Intel x86-64) #3 (ちょいと寄り道)
Leopard de Oracle10g R2 (Intel x86-64) #4 (Companion CD installation)
Leopard de Oracle10g R2 (Intel x86-64) #5 (dbstart and dbshut does not work!! But....)
Leopard de Oracle10g R2 (Intel x86-64) #6 (onsがバグっている?件..)
Leopard de Oracle10g R2 (Intel x86-64) #7 (iSQL*Plusのメッセージがものすごく怖い件)
Leopard de Oracle10g R2 (Intel x86-64) #8 - (APEX3.2と遊ぶ #1)
Leopard de Oracle10g R2 (Intel x86-64) #9 - (APEX3.2と遊ぶ #2)
Leopard de Oracle10g R2 (Intel x86-64) #10 (APEX3.2と遊ぶ #3)

| | コメント (0) | トラックバック (0)

Leopard de Oracle10g R2 (Intel x86-64) #10 (APEX3.2と遊ぶ #3)

Oracle10g R2 10.2.0.4.0 for MacOSX (Intel x68-64)でAPEX3.2と遊ぶの第三話。
前回まででOracle 10g R2 10.2.0.4.0 for MacOSX (Intel x86-64)へAPEX3.2日本語リソースまでインストールすることができた。今回はOracle 10g R2 10.2.0.4.0 for MacOSX (Intel x86-64)ではCompanion CDにも含まれておらずインストールすらできないOracle HTTP ServerとPL/SQL gatewayなんとかしてみる。(それさえなんとかできればAPEX3.2が使えるはず。。)
方法は幾つ考えられるが、まずは、”なんとかできるはず”と思っている根拠について書いておこうかと・・・・。


”なんとかできるはず”だと考えているのにはそれなりの理由がある。それは、Rosettaの存在。
以前、Oracle Instant Client 10g R1 for MacOSX(PPC) is running under Rosetta on MacOSX LeopardでもRosettaの力でPowerPC版のOracle Instant Client 10g R1がMacOSX Leopard (intel x86)上で動作したという記事を書いたことがあるが、今回もRosettaのお世話になれば実現できるはず!。

いくつか考えられる方法のうち、Oracle10g R1 10.1.0.3.0 for MacOSX (PowerPC)版のCompanion CDを使いMacOSX Leopard (intel x86)上でインストールするという方法は、随分前にも試したことがあるOracl10g Databaseのインストールと同様に上手く行かない。(以下、NGシーンの再現)
Oracle10gr1_companinon_cd_4_powerpc


上記以外で確実な方法として、PowerPC版Mac上でインストール、構成までしたバイナリを、そのままIntel x86版Macへ移動して再構成(もちろん手動でね)すれば使えるようになるはず・・・・・・・。

ということで、次回へつづく。




バックナンバー

Oracle10g R2 for MacOSX (Intel x86-64) released !!!
Leopard de Oracle10g release 2 (Intel x86-64)
Leopard de Oracle10g R2 (Intel x86-64) #1
Leopard de Oracle10g R2 (Intel x86-64) #2
Leopard de Oracle10g R2 (Intel x86-64) #3 (ちょいと寄り道)
Leopard de Oracle10g R2 (Intel x86-64) #4 (Companion CD installation)
Leopard de Oracle10g R2 (Intel x86-64) #5 (dbstart and dbshut does not work!! But....)
Leopard de Oracle10g R2 (Intel x86-64) #6 (onsがバグっている?件..)
Leopard de Oracle10g R2 (Intel x86-64) #7 (iSQL*Plusのメッセージがものすごく怖い件)
Leopard de Oracle10g R2 (Intel x86-64) #8 - (APEX3.2と遊ぶ #1)
Leopard de Oracle10g R2 (Intel x86-64) #9 - (APEX3.2と遊ぶ #2)

| | コメント (0) | トラックバック (0)

2009年5月15日 (金)

Leopard de Oracle10g R2 (Intel x86-64) #9 - (APEX3.2と遊ぶ #2)

Oracle10g R2 10.2.0.4.0 for MacOSX (Intel x68-64)でAPEX3.2と遊ぶの第二話。日本語リソースをインストールしてみた。とにかく結果をご覧くださいな。と。

ちなみに、データベースキャラクタセットはAL32UTF8。


2

日本語リソースは、APEX3.2を解凍したディレクトリ/builder/ja以下にある。例によってインストール方法はマニュアル読んでね

guppy:ja oracle$ pwd
/Users/oracle/Downloads/apex/builder/ja
guppy:ja oracle$
guppy:ja oracle$
guppy:ja oracle$ sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on 水 5月 13 19:49:22 2009

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

> conn / as sysdba
接続されました。
SYS> alter session set current_schema=apex_030200;

セッションが変更されました。

SYS> @load_ja
. ____ ____ ____ ____
. / \ | \ /\ / | /
.| || / / \ | | |
.| ||--- ---- | | |--
.| || \ / \ | | |
. \____/ | \/ \ \____ |____ \____
.
. Application Express Hosted Development Service Installation.
.........................................................
Install Application Express applications

PL/SQLプロシージャが正常に完了しました。

APPLICATION 4420 - APEX - System Messages

・・・・中略・・・・

...done
APPLICATION 4009 - APEX - Application Builder

・・・・中略・・・・

...PAGE .4009: ページ0(ゼロ)
...PAGE 1.4009: アプリケーション・ビルダー
...PAGE 2.4009: サポートするオブジェクト
...PAGE 3.4009: ブレッドクラム・エントリ
...PAGE 4.4009: マスター表の定義
...PAGE 5.4009: ディテール表を定義
...PAGE 6.4009: アイテム・ラベルのグリッド編集
...PAGE 7.4009: 複数のアイテムの削除
...PAGE 8.4009: 参照コンポーネント
...PAGE 9.4009: 共有コンポーネント
...PAGE 10.4009: 未使用のリスト
...PAGE 11.4009: マスター・ディテールの作成
...PAGE 12.4009: マスター・ディテールの作成
...PAGE 13.4009: アイテム・ヘルプのシード
...PAGE 14.4009: アクティビティ
...PAGE 15.4009: レイアウトの選択
...PAGE 16.4009: SQLレポート
...PAGE 17.4009: 置換
...PAGE 18.4009: ページ属性
...PAGE 19.4009: 複数の検証の作成

・・・・中略・・・・


...PAGE 9016.4009: アプリケーション別のデフォルトのテンプレート
...lists

・・・・中略・・・・

Adjust instance settings

PL/SQLプロシージャが正常に完了しました。

SYS>


問題なく日本語リソースも無事インストールできた。予想通りOracle Application Server絡みで未サポートとなったのかな?・・・・・。

次回は、いよいよOracle10g R2 10.2.0.4.0 for MacOSX (Intel x86-64) ではインストールもできないOracle HTTP Server + PL/SQL Gatewayをなんとかしてみる・・・・・か。。

2009/5/15更新



バックナンバー

Oracle10g R2 for MacOSX (Intel x86-64) released !!!
Leopard de Oracle10g release 2 (Intel x86-64)
Leopard de Oracle10g R2 (Intel x86-64) #1
Leopard de Oracle10g R2 (Intel x86-64) #2
Leopard de Oracle10g R2 (Intel x86-64) #3 (ちょいと寄り道)
Leopard de Oracle10g R2 (Intel x86-64) #4 (Companion CD installation)
Leopard de Oracle10g R2 (Intel x86-64) #5 (dbstart and dbshut does not work!! But....)
Leopard de Oracle10g R2 (Intel x86-64) #6 (onsがバグっている?件..)
Leopard de Oracle10g R2 (Intel x86-64) #7 (iSQL*Plusのメッセージがものすごく怖い件)
Leopard de Oracle10g R2 (Intel x86-64) #8 - (APEX3.2と遊ぶ #1)

| | コメント (0) | トラックバック (0)

2009年5月14日 (木)

Leopard de Oracle10g R2 (Intel x86-64) #8 - (APEX3.2と遊ぶ #1)

さて、前回予告していたようにOracle10g R2 10.2.0.4.0 for MacOSX (Intel x86-64)へOracle Application Express 3.2をインストールして無理矢理使ってみましょう! の第一話。

Oracle Application Express3.2(以下、APEX3.2)は、http://www.oracle.com/technology/products/database/application_express/download.htmlからダウンロード。


2

今回はOracle10g R2 10.2.0.4.0 for MacOSX (Intel x86-64)APEX3.2の英語環境をインストールするところまでを試してみる。
PL/SQLパッケージ等の作成がメインだから問題になりそうな箇所はないんだけど、なんで未サポートなんだろう?。 Oracle HTTP Serverが未サポートだからその影響か?


上記URLからダウンロードしたAPEX3.2を解凍したディレクトリに移動(MacOSX Leopardでは通常Downloadフォルダへダウンロードされる。)

guppy:˜ oracle$ 
guppy:˜ oracle$ cd /Users/oracle/Downloads/apex
guppy:apex oracle$ ll
total 424
-r--r--r--@ 1 oracle oinstall 690 9 10 2008 apex_epg_config.sql
-r--r--r--@ 1 oracle oinstall 15749 1 18 17:38 apex_epg_config_core.sql
-r--r--r--@ 1 oracle oinstall 5208 1 8 13:33 apexins.sql
-r--r--r--@ 1 oracle oinstall 8476 1 8 13:33 apexvalidate.sql
-r--r--r--@ 1 oracle oinstall 1549 1 8 13:33 apxchpwd.sql
-r--r--r--@ 1 oracle oinstall 2830 12 23 18:39 apxconf.sql

・・・・中略・・・・

drwxr-xr-x@ 873 oracle oinstall 29682 2 11 05:50 images
-r--r--r--@ 1 oracle oinstall 1295 12 23 18:39 load_trans.sql
drwxr-xr-x@ 64 oracle oinstall 2176 2 8 19:34 owa
drwxr-xr-x@ 9 oracle oinstall 306 2 8 21:30 utilities
-rw-rw-r-- 1 oracle oinstall 4803 2 17 12:13 welcome.html
guppy:apex oracle$
guppy:apex oracle$

ディレクトリを移動後、SQL*Plusから赤太文字で示したapexins.sql(前述)を実行する。
実行時のパラメータはAPEXのマニュアルを見てね

guppy:apex oracle$ sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on 水 5月 13 19:08:04 2009

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

> conn / as sysdba
接続されました。
SYS> @apexins SYSAUX SYSAUX TEMP /i/

セッションが変更されました。

. ____ ____ ____ ____
. / \ | \ /\ / | /
.| || / / \ | | |
.| ||--- ---- | | |--
.| || \ / \ | | |
. \____/ | \/ \ \____ |____ \____
.
. Application Express Installation.
...................................
.
... Checking prerequisites

・・・・中略・・・・

I. I N S T A L L P R E - C R E A T E T A B L E S P E C S
...wwv_flow_init_htp_buffer

プロシージャが作成されました。

エラーはありません。

権限付与が成功しました。

・・・・中略・・・・

II. I N S T A L L F L O W T A B L E S
...create v function stub

ファンクションが作成されました。

エラーはありません。
...create nv function stub

ファンクションが作成されました。

エラーはありません。

・・・・中略・・・・

III. I N S T A L L F L O W P A C K A G E S P E C S
...wwv_flow_hot_http_links

ファンクションが作成されました。

エラーはありません。

・・・・中略・・・・

Package Specsのタイミング。
経過: 00:00:11.13

IV. I N S T A L L F L O W P A C K A G E B O D I E S
...wwv_dbms_sql
エラーはありません。

・・・・中略・・・・

Package Bodiesのタイミング。
経過: 00:02:50.20

V. P E R F O R M F L O W G R A N T S
Installing flows_files objects 2
...create flows_files
...trigger wwv_biu_flow_file_objects
エラーはありません。
Grantsのタイミング。
経過: 00:00:00.09

VI. I N S T A L L F L O W S
define "^" (hex 5e)
...internal messages
APPLICATION 4411 - APEX - System Messages
Set Credentials...
Check Compatibility...
WWV_FLOW_API.FLOWS_API_LAST_EXTENDED20090112
WWV_FLOW_API.CURRENT_FLOWS_VERSION20090112

・・・・中略・・・・

......Message f4400_p12_howto_step7
......Message internal_users
......Message database_users
......Message f4400_p22_obj_created
......Message f4400_p10_queries_help
......Message f4400_p9_tables_help
......Message f4400_p22_table_info
......Message f4400_p8_forms_help
......Message f4400_p20_reports_help
......Message f4400_p49_defs_help
......Message wwv_flow_item_protection_save_item_internal_only_show
......Message wwv_flow_sw_parser_line_exceeds_32k
......Message wwv_flow_sw_api_check_priv_obj
......Message f4050_approved_account_req_display
......Message archivelog

・・・・中略・・・・

Install Internal Flowsのタイミング。
経過: 00:00:34.94

...Development install if necessary

セッションが変更されました。

I. O R A C L E S Y S I N S T A L L P R O C E S S
dev_grants
...grant APEX owner development privileges

・・・・中略・・・・

...done grant APEX owner core privileges
...CONNECT as the Oracle user who will own the APEX engine

セッションが変更されました。

III. I N S T A L L F L O W P A C K A G E S P E C S
wwv_flow_plsql_editor.sql

・・・・中略・・・・

Development Package Specsのタイミング。
経過: 00:00:40.17
wwv_flow_plsql_editor.plb

パッケージ本体が作成されました。

・・・・中略・・・・

Development Package Bodiesのタイミング。
経過: 00:00:29.69

権限付与が成功しました。


PL/SQLプロシージャが正常に完了しました。

VI. I N S T A L L F L O W S
define "^" (hex 5e)
APPLICATION 4000 - APEX - Application Builder
Set Credentials...
Check Compatibility...
API Last Extended:20090112
Your Current Version:20090112

・・・・中略・・・・

Install Internal Development Applicationsのタイミング。
経過: 00:09:10.55

load verification images

PL/SQLプロシージャが正常に完了しました。

エラーはありません。

・・・・中略・・・・

Thank you for installing Oracle Application Express.

Oracle Application Express is installed in the APEX_030200 schema.

The structure of the link to the Application Express administration services is as follows:
http://host:port/pls/apex/apex_admin (Oracle HTTP Server with mod_plsql)
http://host:port/apex/apex_admin (Oracle XML DB HTTP listener with the embedded PL/SQL gateway)

The structure of the link to the Application Express development interface is as follows:
http://host:port/pls/apex (Oracle HTTP Server with mod_plsql)
http://host:port/apex (Oracle XML DB HTTP listener with the embedded PL/SQL gateway)

JOB_QUEUE_PROCESSES: 10

PL/SQLプロシージャが正常に完了しました。


セッションが変更されました。


Performing Application Express component validation - please wait...

Completing registration process.
Validating installation.

PL/SQLプロシージャが正常に完了しました。

Validate Installationのタイミング。
経過: 00:02:04.77

・・・・中略・・・・

VII. L O A D E N G L I S H D I C T I O N A R Y

トリガーが変更されました。

...10000 rows
...20000 rows
...30000 rows
...40000 rows
...50000 rows
...60000 rows
...70000 rows
English Dictionaryのタイミング。
経過: 00:02:58.72
Upgradeのタイミング。
経過: 00:00:01.15
...End of install if runtime install
...create null.sql
Development Installationのタイミング。
経過: 00:17:28.33
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsとの接続が切断されました。
guppy:apex oracle$
guppy:apex oracle$


特に問題もなくAPEX3.2の英語版はインストールできた。これなら次も順調かもよ・・・・・


次はAPEXのバージョン確認(FAQですが)。
apex_030200.wwv_flows_release関数を使えば確認できます。
ちなみにhtmldbなんて呼ばれていたころから flows_02000とか、リリース毎にスキーマ名が変る点にご注意を。但し関数名は変らないのでスキーマ名だけ注意すれば問題ないです。

guppy:apex oracle$ sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on 水 5月 13 19:08:04 2009

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

> conn / as sysdba
接続されました。

SYS> select apex_030200.wwv_flows_release from dual;

WWV_FLOWS_RELEASE
--------------------------------------------------------------------------------
3.2.0.00.27

SYS>

次回、日本語リソースのインストール。毎回思うけど、apexins.sqlで一緒にやってくれないかな?
jaとか指定するとenにつづいてjaをインストールしてくれるとか・・・・面倒で・・・。




バックナンバー

Oracle10g R2 for MacOSX (Intel x86-64) released !!!
Leopard de Oracle10g release 2 (Intel x86-64)
Leopard de Oracle10g R2 (Intel x86-64) #1
Leopard de Oracle10g R2 (Intel x86-64) #2
Leopard de Oracle10g R2 (Intel x86-64) #3 (ちょいと寄り道)
Leopard de Oracle10g R2 (Intel x86-64) #4 (Companion CD installation)
Leopard de Oracle10g R2 (Intel x86-64) #5 (dbstart and dbshut does not work!! But....)
Leopard de Oracle10g R2 (Intel x86-64) #6 (onsがバグっている?件..)
Leopard de Oracle10g R2 (Intel x86-64) #7 (iSQL*Plusのメッセージがものすごく怖い件)

| | コメント (0) | トラックバック (0)

2008年4月17日 (木)

埋込みPL/SQL Gatewayで外部URLアクセス

Oracle11g R1 11.1.0.6.0 for Linux x86 and Oracle Application Expressという記事で埋込みPL/SQL GatewayをでPython Challengeを試してみたのだが・・・埋込みPL/SQL Gatewayを利用した場合、UTL_HTTPパッケージで外部のURLへアクセスすることはできないみたいなので、あきらめて通常のmod_plsqlでやってみるか・・・。Oracle11gからならACLで許可してやればアクセスできるのに、Oracle11gに内蔵されているXDB HTTP Serverではそれは効かないのね。。遊べると思ったのに。。orz.(Oracle11gの埋込みPL/SQL Gatewayの備忘録として残しておくか。。)

エラーメッセージは以下の通り。(Apexを3.1にするとできるようになったりして。。。2008/4/19追記)

ORA-31020:操作できません。 理由:For security reasons, ftp and http access over XDB repository is not allowed on server side

以下、埋込みPL/SQL Gatewayを利用したOracle Application Expressのスクリーンショット
9


4/18追記
どうもこれは埋込みPL/SQL GatewayというよりOracle Application Express側の影響のように思えてきた。10gのmod_plsql経由でもApexでは同じエラーだった。
ちなみに、mod_plsql経由で呼び出すだけならACL定義でアクセスするホストを許可してやるだけでOK。

以下にその時のスクリーンショットを載せておく。
答えにLevel17の答えに結びつく部分はぼかしてますよ〜〜。

19


でも何故、ApexからUTL_HTTPを利用するとXDB絡みのエラーになるんだ? 不思議すぎる。。。これは追々調べておくか。。何か手順から漏れていることがあったりして。。。。つづく。

さらに追記、やはり出来ない(11gからはできなくなったと言ったほうがいいだろう)というのが正しいようだ。10gではApexから直接UTL_HTTPパッケージからHTTPリクエスト出してfeedやらHTMLやらアクセスし放題だったのに〜〜〜、プンプンのプン。 ふ〜普通のmod_plsqlでやりますよ〜〜〜〜だ。

| | コメント (0) | トラックバック (0)

2008年4月16日 (水)

Oracle11g R1 11.1.0.6.0 for Linux x86 and Oracle Application Express

Python Challenge Level17の記事を書く前に、やっておきたい事があったのでそちらを先に。

何をやりたかったのか? それは、APEX(Oracle Application Express)環境を作っておく事。

Python ChallengeではWeb Applicationとして処理して欲しそうな問題も多数存在する。Level17はそうしたほうが自然な感じをだと思ったので。。。(実際にはそこまでしなくても解けたのですが)
Oracle11gからApexがバンドルされたのと同時に、組み込みPL/SQL gateway機能も追加されたのでその辺りも含めて確認しておきたかった。

この組込PL/SQL Gatewayってなによ? って方もいると思うのだが、簡単に言うと、”Oracle11gのデータベース内部にHTTP Server+mod_plsqが内蔵されちゃっている”と思えばイメージしやすいんじゃないかと。

概要はこのあたりのマニュアルを読めば掴めると思います。はい。

マニュアル(英語)Understanding Oracle Application Express Architecture

データベースサーバがHTTPサーバを内蔵なんて言うといや〜な顔する人もいるだろうなぁ。なんて思ったりもします。(笑)
実際の所組込みPL/SQLゲートウェイは、外部に公開するというより開発目的など内部の閉じられた環境で利用されることがほとんどじゃないかなぁと個人的には思います。

Oracle11gをインストールした場合、OUIによるインストールでは明示的に除外しなければOracle Application Expressも同時にインストールされる。尚、埋込みPL/SQLゲートウェイを利用するためには、Oracle XML DBも必要。詳細はマニュアルに記載されているので、よ〜〜〜く読めば簡単に構成できます。
4.5 Postinstallation Tasks for Oracle Application Express

ちなみに、Oracle11g R1 1011.1.0.6.0に含まれるOracle Application Expressは、3.0.1.00.08とのこと、3.1が既にリリースされているのでアップグレードするのもいいが、今回は面倒なのでそのまま使うことにした。

では”素直に”マニュアルに従い作業を進める。。。(笑)

sysdbaで接続後、 $ORACLE_HOME/apex/apexconfを実行しadminユーザのパスワードとapexのport番号を設定してから、anonymousユーザをアンロックします。

G5Server:˜ discus$ ssh oracle@corydoras
oracle@corydoras's password:
Last login: Tue Apr 15 22:09:38 2008 from 192.168.1.19
[oracle@corydoras ˜]$
[oracle@corydoras ˜]$
[oracle@corydoras ˜]$ sqlplus /nolog

SQL*Plus: Release 11.1.0.6.0 - Production on 火 4月 15 22:46:50 2008

Copyright (c) 1982, 2007, Oracle. All rights reserved.

> conn / as sysdba
接続されました。
SYS> spo apexconfig.log
SYS> @?/apex/apxconf

PORT
----------
8080

Enter values below for the XDB HTTP listener port and the password for the Application Express ADMIN user.
Default values are in brackets [ ].
Press Enter to accept the default value.


Enter a password for the ADMIN user [] apex
Enter a port for the XDB HTTP listener [ 8080]
...changing HTTP Port

PL/SQLプロシージャが正常に完了しました。


PL/SQLプロシージャが正常に完了しました。


セッションが変更されました。

...changing password for ADMIN

PL/SQLプロシージャが正常に完了しました。


コミットが完了しました。

SYS> alter user anonymous account unlock;

ユーザーが変更されました。

SYS>

さて、お継ぎはマニュアルに記載されている通り(コピペでOKです。)外部のネットワークにアクセスする為にACLを変更しました。
(この例ではマニュアルと同様、どこでもアクセスできるようにしておきます。今回の場合は、python challengeのサイトだけアクセス許可しておけば問題ないのですが、いろいろと試したいことがあるので今回マニュアルの例をそのまま利用させてもらいました。)

SYS> l
1 DECLARE
2 ACL_PATH VARCHAR2(4000);
3 ACL_ID RAW(16);
4 BEGIN
5 -- Look for the ACL currently assigned to '*' and give FLOWS_030000
6 -- the "connect" privilege if FLOWS_030000 does not have the privilege yet.
7 SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
8 WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
9
10 -- Before checking the privilege, make sure that the ACL is valid
11 -- (for example, does not contain stale references to dropped users).
12 -- If it does, the following exception will be raised:
13 --
14 -- ORA-44416: Invalid ACL: Unresolved principal 'FLOWS_030000'
15 -- ORA-06512: at "XDB.DBMS_XDBZ", line ...
16 --
17 SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
18 FROM XDB.XDB$ACL A, PATH_VIEW P
19 WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
20 EQUALS_PATH(P.RES, ACL_PATH) = 1;
21
22 DBMS_XDBZ.ValidateACL(ACL_ID);
23
24 IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'FLOWS_030000', 'connect')
25 IS NULL THEN
26 DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
27 'FLOWS_030000', TRUE, 'connect');
28 END IF;
29
30 EXCEPTION
31 -- When no ACL has been assigned to '*'.
32 WHEN NO_DATA_FOUND THEN
33 DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
34 'ACL that lets power users to connect to everywhere',
35 'FLOWS_030000', TRUE, 'connect');
36 DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
37* END;
SYS> /

PL/SQLプロシージャが正常に完了しました。

SYS>
SYS> commit;

コミットが完了しました。

SYS>


apexの管理画面にログインするには...以下のような形式のURLでブラウザからアクセスする。もちろん、ホストはOracle11g Databaseインスタンスがあるサーバですよ。

http://host:port/apex/apex_admin

Apex_admin_1

Apex_admin_2

Apex_admin_3

Apex_admin_4

ここまでで、application expressは利用可能な状態なのだが1つ問題がある、それは英語版のままだということ。(これは以前のOracle Application Expressでも同じですね。)
ということで、日本語リソースをロードします。尚、環境変数NLS_LANGは、AL32UTF8である必要があります。(これも以前と同じなので利用したことがあれば間違うことは無いと思いますが、注意しなければならない点ですよ。うっかりミスというのもありますから。)

[oracle@corydoras ˜]$ sqlplus /nolog

SQL*Plus: Release 11.1.0.6.0 - Production on 火 4月 15 23:06:03 2008

Copyright (c) 1982, 2007, Oracle. All rights reserved.

> conn / as sysdba
接続されました。
SYS> !echo $NLS_LANG
japanese_japan.AL32UTF8

SYS> alter session set current_schema=FLOWS_030000;

セッションが変更されました。

SYS> @?/apex/builder/ja/load_ja
. ____ ____ ____ ____
. / \ | \ /\ / | /
.| || / / \ | | |
.| ||--- ---- | | |--
.| || \ / \ | | |
. \____/ | \/ \ \____ |____ \____
.
. Application Express Hosted Development Service Installation.
.........................................................

PL/SQLプロシージャが正常に完了しました。

Install Application Express applications

PL/SQLプロシージャが正常に完了しました。

APPLICATION 4420 - APEX - System Messages
Set Credentials...
Check Compatibility...
API Last Extended:20070525
Your Current Version:20070525
This import is compatible with version: 20070108
COMPATIBLE (You should be able to run this import without issues.)
Set Application ID...
...authorization schemes
...navigation bar entries
...application processes
...application items
...application level computations
...Application Tabs
...Application Parent Tabs
...Shared Lists of values
...Application Trees
...page groups
...PAGE 1.442: メッセージ
...lists
...breadcrumbs

中略

...PAGE 91.4009: 検証の作成 - 検証タイプ
...PAGE 92.4009: 標準タブの作成の確認
...PAGE 93.4009: 既存のタブ・セットの選択
...PAGE 94.4009: タブ情報の指定
...PAGE 95.4009: 親タブ・セット
...PAGE 96.4009: 新しいタブ名
...PAGE 97.4009: 表形式フォーム
...PAGE 98.4009: 検証の作成 - SQL検証
...PAGE 99.4009: SQLレポートの作成
...PAGE 100.4009: カレンダ・ページの作成
...PAGE 101.4009: ボタンのコピー
...PAGE 102.4009: リージョンの削除の確認
...PAGE 103.4009: ビルド・ステータス
...PAGE 104.4009: ビルド・チャート問合せ
...PAGE 105.4009: スクリプト・ファイルのエクスポート
...PAGE 106.4009: ビルド・チャート問合せ
...PAGE 107.4009: 作成ウィザード
...PAGE 108.4009: 作成ウィザード
...PAGE 109.4009: 作成ウィザード
...PAGE 110.4009: 作成ウィザード
...PAGE 111.4009: 作成ウィザード
...PAGE 112.4009: ツリー・ウィザード
...PAGE 113.4009: ツリー・ウィザード
...PAGE 114.4009: ツリー・ウィザード

中略

......scheme 108165525079033088.4709
...done
Adjust instance settings

PL/SQLプロシージャが正常に完了しました。


最後に、job_queue_process初期化パラメータが1以上になっているか確認します。
私も初めて気付いたがデフォルトで1000になっているんですね。びっくり。以前は1桁か2桁だったようなきがするが。

SYS> 
SYS> show parameter job_queue_processes

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes integer 1000
SYS>

尚、今回はSSLの設定は行わないので早速Apexの管理ユーザログインし直し開発用作業領域と開発ユーザを作っておく。

Apex_ja_1

Apex_ja_2

Apex_ja_3

Apex_ja_4

Apex_ja_7

Apex_ja_8

Apex_ja_10

Apex_ja_9

さて、準備もできたので次へ行くか!

| | コメント (0) | トラックバック (0)

2007年4月 2日 (月)

Mac De PL/SQL RSS Reader #33 (XSLT編 #5)

さて、前回からのつづき。

●プロシージャのソースです。

HTMLで表示しているため以下のソースをそのままコピー/ペーストするとコンパイルエラーなど不都合が発生することがあるかもしれませんので、ソースを利用される場合は、XSLTスタイルシートも含め、こちらからダウンロードしたソースをお使いください。 source.zip (3.9K)

CREATE OR REPLACE 
PROCEDURE RSS_READER_XSLT
(
i_feedXmlUrl IN VARCHAR2,
i_feedXmlCharset IN VARCHAR2,
i_styleSheetDir IN VARCHAR2,
i_styleSheetName IN VARCHAR2,
DEBUG_ IN BOOLEAN DEFAULT FALSE
)
AS
--===========================================================
rss_reader_xslt.sql : 2007/3/26 - Mac De Oracle
http://discus-hamburg.cocolog-nifty.com/mac_de_oracle/
--============ ===============================================

--============ TYPEs/VARIABLEs ===============================================
XSL_CHARSET_ CONSTANT VARCHAR(30) := 'UTF8';
v_feedXmlUrl VARCHAR2(32767);
v_feedXmlCharset VARCHAR2(30);
v_styleSheetDir VARCHAR2(30);
v_styleSheetName VARCHAR2(100);

myParser DBMS_XMLPARSER.Parser;
v_feedDoc DBMS_XMLDOM.DomDocument;
v_feedSourceClob CLOB;

myProcessor DBMS_XSLPROCESSOR.Processor;
v_xsl DBMS_XSLPROCESSOR.StyleSheet;
v_xslDoc DBMS_XMLDOM.DomDocument;
v_xslSourceClob CLOB;
v_xslDocFragment DBMS_XMLDOM.DomdocumentFragment;
v_transformedDoc DBMS_XMLDOM.DomNode;

v_clobbuffer CLOB;

--========== Internal PROCEDUREs/FUNCTIONs ===================================
PROCEDURE getXMLSource(
i_url IN VARCHAR2,
i_charset IN VARCHAR2 DEFAULT 'UTF-8',
io_sourceClob IN OUT NOCOPY CLOB
)
IS
v_httpReq UTL_HTTP.REQ;
v_httpResp UTL_HTTP.RESP;
v_xmlSource VARCHAR2(1024);
BEGIN
v_httpReq := UTL_HTTP.BEGIN_REQUEST(i_url);
UTL_HTTP.SET_HEADER(
v_httpReq,
'User-Agent',
'Oracle UTL_HTTP/Oracle10g R1;'
);

UTL_HTTP.SET_HEADER(
v_httpReq,
'Content-Type',
'text/xml;charset='||i_charset
);

v_httpResp := UTL_HTTP.GET_RESPONSE(v_httpReq);
DBMS_LOB.CREATETEMPORARY(io_sourceClob, FALSE);
BEGIN
LOOP
UTL_HTTP.READ_LINE(v_httpResp, v_xmlSource, true);
v_xmlSource := v_xmlSource || UTL_TCP.CRLF;
DBMS_LOB.WRITEAPPEND(
io_sourceClob,
LENGTH(v_xmlSource),
v_xmlSource
);
END LOOP;
EXCEPTION
WHEN UTL_HTTP.END_OF_BODY THEN
UTL_HTTP.END_RESPONSE(v_httpResp);
END;
END getXMLSource;

PROCEDURE drawFeedEntries(
i_buffer IN CLOB
)
IS
chunkSize_ CONSTANT PLS_INTEGER := 10922;
v_numOfChunk PLS_INTEGER;
v_src CLOB;
v_tempStr VARCHAR2(32767);
BEGIN
v_src := i_buffer;
FOR chunk# IN 0..CEIL(DBMS_LOB.GETLENGTH(v_src) / chunkSize_) LOOP
v_tempStr := SUBSTR(i_buffer, (chunk#*chunkSize_)+1, chunkSize_);
HTP.PRN(v_tempStr);
END LOOP;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(
'Error Occured : rss_reader_xslt.drawFeedEntries(CLOB).'
);
DBMS_OUTPUT.PUT_LINE(sqlerrm());
RAISE;

END drawFeedEntries;

-- for DEBUG
PROCEDURE pl(text IN CLOB)
IS
BEGIN
IF length(text)> 80 THEN
FOR i IN 1..(trunc(length(text)/80)+1) LOOP
dbms_output.put_line(substr(text,1+ 80*(i-1),80));
END LOOP;
ELSE
dbms_output.put_line(text);
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error occured : pl(VARCHAR2).');
RAISE;
END pl;

--
--
--****************************************************************************
-- Main
--****************************************************************************
BEGIN

v_feedXmlUrl := i_feedXmlUrl;
v_feedXmlCharset := i_feedXmlCharset;
v_styleSheetDir := UPPER(i_styleSheetDir);
v_styleSheetName := i_styleSheetName;

IF v_feedXmlUrl IS NULL THEN
RAISE_APPLICATION_ERROR(-20000, 'FEEDのURLを指定してください。');
END IF;
IF v_styleSheetDir IS NULL THEN
RAISE_APPLICATION_ERROR(
-20001,
'XSLTスタイルシートが保存されているディレクトリを指定してください。'
);
END IF;
IF v_styleSheetName IS NULL THEN
RAISE_APPLICATION_ERROR(-20002, 'XSLTスタイルシート名を指定してください。');
END IF;

-- RSS FEEDの取得する
getXMLSource(
i_url => v_feedXmlUrl,
i_charset => v_feedXmlCharset,
io_sourceClob => v_feedSourceClob
);
myParser := DBMS_XMLPARSER.NEWPARSER();
DBMS_XMLPARSER.PARSECLOB(myParser, v_feedSourceClob);
v_feedDoc := DBMS_XMLPARSER.GETDOCUMENT(myParser);

-- XSLTスタイルシートを読み込む
v_xslSourceClob := DBMS_XSLPROCESSOR.READ2CLOB(
v_styleSheetDir,
v_styleSheetName,
NLS_CHARSET_ID(XSL_CHARSET_)
);
DBMS_XMLPARSER.PARSECLOB(myParser, v_xslSourceClob);
v_xslDoc := DBMS_XMLPARSER.GETDOCUMENT(myParser);
v_xsl := DBMS_XSLPROCESSOR.NEWSTYLESHEET(v_xslDoc, NULL);

-- DOMにXSLTスタイルシートを適用する
myProcessor := DBMS_XSLPROCESSOR.NEWPROCESSOR();
v_xslDocFragment := DBMS_XSLPROCESSOR.PROCESSXSL(
myProcessor,
v_xsl,
v_feedDoc
);
v_transformedDoc := DBMS_XMLDOM.MAKENODE(v_xslDocFragment);
DBMS_LOB.CREATETEMPORARY(v_clobbuffer, FALSE);
DBMS_XMLDOM.WRITETOCLOB(v_transformedDoc, v_clobbuffer);

-- 変換後のHTMLを出力する
IF DEBUG_ THEN
pl(v_clobbuffer);
ELSE
drawFeedEntries(v_clobbuffer);
END IF;

DBMS_LOB.FREETEMPORARY(v_feedSourceClob);
DBMS_LOB.FREETEMPORARY(v_xslSourceClob);
DBMS_LOB.FREETEMPORARY(v_clobbuffer);
DBMS_XSLPROCESSOR.FREESTYLESHEET(v_xsl);
DBMS_XMLDOM.FREEDOCUMENT(v_feedDoc);
DBMS_XMLDOM.FREEDOCUMENT(v_xslDoc);
DBMS_XMLPARSER.FREEPARSER(myParser);
DBMS_XSLPROCESSOR.FREEPROCESSOR(myProcessor);

EXCEPTION
WHEN OTHERS THEN
IF v_feedSourceClob IS NOT NULL THEN
DBMS_LOB.FREETEMPORARY(v_feedSourceClob);
END IF;
IF v_xslSourceClob IS NOT NULL THEN
DBMS_LOB.FREETEMPORARY(v_xslSourceClob);
END IF;
IF v_clobbuffer IS NOT NULL THEN
DBMS_LOB.FREETEMPORARY(v_clobbuffer);
END IF;
DBMS_XSLPROCESSOR.FREESTYLESHEET(v_xsl);
DBMS_XMLDOM.FREEDOCUMENT(v_feedDoc);
DBMS_XMLDOM.FREEDOCUMENT(v_xslDoc);
DBMS_XMLPARSER.FREEPARSER(myParser);
DBMS_XSLPROCESSOR.FREEPROCESSOR(myProcessor);

IF DEBUG_ THEN
DBMS_OUTPUT.PUT_LINE('RSS Reader error:'||SQLERRM());
ELSE
HTP.TABLEOPEN();
HTP.TABLEROWOPEN();
HTP.TABLEHEADER('RSS Reader error:'||SQLERRM());
HTP.TABLEROWCLOSE();
HTP.TABLECLOSE();
END IF;
END RSS_READER_XSLT;
/


このサンプルは OTN-Jの CodeTipsでも公開しています。

(1/3) http://otn.oracle.co.jp/otn_pl/otn_tool/code_detail?n_code_id=2135
(2/3) http://otn.oracle.co.jp/otn_pl/otn_tool/code_detail?n_code_id=2137
(3/3) http://otn.oracle.co.jp/otn_pl/otn_tool/code_detail?n_code_id=2138

| | コメント (0) | トラックバック (0)

2007年4月 1日 (日)

Mac De PL/SQL RSS Reader #32 (XSLT編 #4)

つづきです。

XSLTスタイルシートに関して細かく解説するつもりはありませんが、少しだけ解説しておくと。

RSS 0.91/RSS 0.92/ RDF(RSS)1.0ATOM 0.3 / ATOM 1.0の FEEDからタイトルと元ネタへのリンク、各エントリ毎の要約とリンク、そして、存在してれば、[エントリの作成日]を抜き出してHTMLへ変換している。
尚、OTN-JRSS2.0で配信されているが 各エントリには、<pubDate>要素や、<dc:date>要素は存在せず、拡張された<jf:creationDate>要素に作成日を持っているようなので、<jf:creationDate>要素を処理している。

XSLTについては、@ITの記事などや、検索すれば沢山ヒットするので理解できる範囲かと。。。
(難しいことはやってないですから。)
http://www.atmarkit.co.jp/fxml/tanpatsu/xslt/xslt04.html
http://www.atmarkit.co.jp/fxml/tanpatsu/xslt/xslt10.html

尚、DBMS_XSLPROCESSORパッケージなどは、
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19245-01/d_xslpro.htmを参照のこと。

簡単な解説はこれぐらいにして、以下、XSLTスタイルシートのソース。
#1時間くらいで作ったものなので、バグが無いとは言えません。あしからず。
#ちなみに、私が読んでいるFEEDでは特に問題は発生していません。

但し、こんな問題もあり2月に入ってからDTDが開けないエラーが発生している。大抵、他の形式でも配布しているからRSS0.91使わなきゃいいだけかも。。

尚、今回作成したXSLTスタイルシートとPL/SQLのソースコードは、こちらからダウンロードできます。 source.zip (3.9K)

<?xml version="1.0" encoding="utf-8"?>
<!-- ===================================================================
rss2html.xsl : 2007/3/26 - Mac De Oracle
http://discus-hamburg.cocolog-nifty.com/mac_de_oracle/
==================================================================== -->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rss10="http://purl.org/rss/1.0/"
xmlns:atom03="http://purl.org/atom/ns#"
xmlns:atom10="http://www.w3.org/2005/Atom"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:jf="http://www.jivesoftware.com/xmlns/jiveforums/rss"
>


<xsl:output method="html" encoding="utf-8" />
<xsl:template match="/">
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<th>
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:apply-templates select="//rdf:RDF/rss10:channel/rss10:link"/>
<xsl:apply-templates select="//atom03:feed/atom03:link/@href"/>
<xsl:apply-templates select="//atom10:feed/atom10:link/@href"/>
<xsl:apply-templates select="//rss/channel/link"/>
</xsl:attribute>
<xsl:apply-templates select="//rdf:RDF/rss10:channel/rss10:title"/>
<xsl:apply-templates select="//atom03:feed/atom03:title"/>
<xsl:apply-templates select="//atom10:feed/atom10:title"/>
<xsl:apply-templates select="//rss/channel/title"/>
</xsl:element>
</th>
</tr>
<xsl:apply-templates select="//rdf:RDF/rss10:item" mode="normal"/>
<xsl:apply-templates select="//atom03:feed/atom03:entry" mode="normal"/>
<xsl:apply-templates select="//atom10:feed/atom10:entry" mode="normal"/>
<xsl:apply-templates select="//rss/channel/item" mode="normal"/>
</table>
</xsl:template>


<!-- RDF/RSS1.0 template -->
<xsl:template match="rss10:item" mode="normal">
<tr>
<td valign="top">
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="rss10:link"/></xsl:attribute>
<xsl:attribute name="title"><xsl:value-of select="rss10:link"/></xsl:attribute>
<xsl:attribute name="style">color:#FF0000</xsl:attribute>
<xsl:attribute name="target">_blank</xsl:attribute>
<xsl:value-of select="concat(rss10:title, ' - 続きを読む...')" />
</xsl:element>
<xsl:choose>
<xsl:when test="dc:date">
<xsl:value-of select="concat(' - ', substring-before(dc:date,'T'))"/>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</td>
</tr>
</xsl:template>

<xsl:template match="//rdf:RDF/rss10:channel/rss10:title">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="//rdf:RDF/rss10:channel/rss10:link">
<xsl:value-of select="."/>
</xsl:template>


<!-- ATOM 1.0 template -->
<xsl:template match="//atom10:feed/atom10:entry" mode="normal">
<tr>
<td valign="top">
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="atom10:link/@href"/></xsl:attribute>
<xsl:attribute name="title"><xsl:value-of select="atom10:summary"/></xsl:attribute>
<xsl:attribute name="style">color:#FF0000</xsl:attribute>
<xsl:attribute name="target">_blank</xsl:attribute>
<xsl:value-of select="concat(atom10:title,' - 続きを読む...')"/>
</xsl:element>
<xsl:choose>
<xsl:when test="atom10:published">
<xsl:value-of select="concat(' - ',substring-before(atom10:published,'T'))"/>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</td>
</tr>
</xsl:template>

<xsl:template match="//atom10:feed/atom10:title">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="//atom10:feed/atom10:link/@href">
<xsl:if test="../@rel = 'alternate'">
<xsl:if test="../@type = 'text/html'">
<xsl:value-of select="."/>
</xsl:if>
</xsl:if>
</xsl:template>


<!-- ATOM 0.3 template -->
<xsl:template match="//atom03:feed/atom03:entry" mode="normal">
<tr>
<td valign="top">
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="atom03:link/@href"/></xsl:attribute>
<xsl:attribute name="title"><xsl:value-of select="atom03:summary"/></xsl:attribute>
<xsl:attribute name="style">color:#FF0000</xsl:attribute>
<xsl:attribute name="target">_blank</xsl:attribute>
<xsl:value-of select="concat(atom03:title, ' - 続きを読む...')"/>
</xsl:element>
<xsl:choose>
<xsl:when test="atom03:issued">
<xsl:value-of select="concat(' - ', substring-before(atom03:issued, 'T'))"/>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</td>
</tr>
</xsl:template>

<xsl:template match="//atom03:feed/atom03:title">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="//atom03:feed/atom03:link/@href">
<xsl:if test="../@rel = 'alternate'">
<xsl:if test="../@type = 'text/html'">
<xsl:value-of select="."/>
</xsl:if>
</xsl:if>
</xsl:template>


<!-- RSS 0.91/0.92/2.0 template -->
<xsl:template match="//rss/channel/item" mode="normal">
<tr>
<td valign="top">
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="link"/></xsl:attribute>
<xsl:attribute name="title"><xsl:value-of select="link"/></xsl:attribute>
<xsl:attribute name="style">color:#FF0000</xsl:attribute>
<xsl:attribute name="target">_blank</xsl:attribute>
<xsl:value-of select="concat(title, ' - 続きを読む...')"/>
</xsl:element>
<xsl:choose>
<xsl:when test="pubDate">
<xsl:value-of
select="concat(
' - ',
substring(
substring-before(jf:creationDate, ':'),
1,
string-length(substring-before(jf:creationDate, ':'))-3
)
)"
/>
</xsl:when>
<xsl:when test="dc:date">
<xsl:value-of select="concat(' - ', substring-before(dc:date, 'T'))"/>
</xsl:when>
<xsl:otherwise>
<!-- for OTN rss -->
<xsl:if test="jf:creationDate">
<xsl:value-of
select="concat(
' - ',
substring(
substring-before(jf:creationDate, ':'),
1,
string-length(substring-before(jf:creationDate, ':'))-3
)
)"
/>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:template>

<xsl:template match="//rss/channel/title">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="//rss/channel/link">
<xsl:value-of select="."/>
</xsl:template>

</xsl:stylesheet>

長くなるので、PL/SQLのソースは次回。




このサンプルは OTN-Jの CodeTipsでも公開しています。

(1/3) http://otn.oracle.co.jp/otn_pl/otn_tool/code_detail?n_code_id=2135
(2/3) http://otn.oracle.co.jp/otn_pl/otn_tool/code_detail?n_code_id=2137
(3/3) http://otn.oracle.co.jp/otn_pl/otn_tool/code_detail?n_code_id=2138

| | コメント (0) | トラックバック (0)

2007年3月30日 (金)

Mac De PL/SQL RSS Reader #31 (XSLT編 #3)

前回前々回と、いきなりデバッグの後半部分とApex3.0 での動作確認を載せていたので、今回は、少しだけ解説を。

XSLTスタイルシートは、Oracleのディレクトリオブジェクトから読み込んだと書いたが、まずはその点から解説しておこう。
ディレクトリオブジェクトを作成し、Apex3.0でアプリケーションの格納に利用する「作業領域」に割り当てられたスキーマへディレクトリオブジェクトの読み込み権限を付与しておく。

SYS> create directory plsql_de_xslt as '/Volumes/Discus/4oracle/oracle/plsql_de_xslt/';

ディレクトリが作成されました。

SYS> grant read on directory plsql_de_xslt to aquarium;

権限付与が成功しました。

尚、「作業領域」に割り当てられているスキーマの確認方法は、
Application Express管理サービスにログイン->「作業領域の管理」->「作業領域とスキーマの割当の管理」

31 32
33 34
上記のスクリーンショットを見れば一目瞭然だが、作業領域:aquariumにaquariumスキーマが割り当てられていることが確認できる。


ディレクトリオブジェクトの準備が済んだら、事前に作成しておいたXSLTスタイルシート(文字エンコーディングは、UTF-8とした)をディレクトリオブジェクトに対応付けされたディレクトリへ配置する。(以下は配置後の状態)

discus:˜/plsql_de_xslt oracle$ pwd
/Volumes/Discus/4oracle/oracle/plsql_de_xslt
discus:˜/plsql_de_xslt oracle$ ls
RssToXhtml.xsl
discus:˜/plsql_de_xslt oracle$

PL/SQLでは、DBMS_XSLPROCESSOR.READ2CLOB()ファンクションを使って読み込むことができる。


例えば、
●ディレクトリオブジェクト名:"PLSQL_DE_XSLT"
●XSLTスタイルシート名:"RssToXhtml.xsl"
●文字エンコーディング: "UTF-8"

である場合は以下のように指定する。
注意する点は、キャラクタセットIDだろう。NLS_CHARSET_ID関数を利用しキャラクタセット名からキャラクタセットIDに変換する必要がある。また、指定するキャラクタセット名は、Oracle Database グローバリゼーション・サポート・ガイドに記載されている名称を指定する。 この例では、UTF8

==> 私もハマりました。つい、"UTF-8"って指定してしまって。。。(^^;;;; しばらく悩みました。。はい。

  tempClob :=  DBMS_XSLPROCESSOR.READ2CLOB(
'PLSQL_DE_XSLT',
'RssToXhtml.xsl',
NLS_CHARSET_ID('UTF8')
);

また、以前にも書いたが、 DBMS_XMLPARSER.PARSER(url)を使ってRSS FEEDをパースできればいいのだが、今のところ、マルチバイトを利用している場合には文字化けの影響があるので、面倒だがUTL_HTTPパッケージを利用し自前でCLOBに取込んでからパースするようにしている。 

| | コメント (0) | トラックバック (0)

2007年3月29日 (木)

Mac De PL/SQL RSS Reader #30 (XSLT編 #2)

さて、SQL Developerでの確認も終わり、さっそく、Apex3.0で試してみた。

いつものように、「Hide and Show Region」を選択し、RSS 0.91/0.92/1.0/2.0 ATOM 0.3/1.0で配信されているFEEDを読み込むよう設定した。

Ap1_1 Ap2 


アプリケーションを実行した結果は以下。思い通りに変換されている。(XSLTスタイルシートを利用しているので、見栄えを変更する場合はXSLTスタイルシートを修正するだけ。。)

Ap3 Ap4

まあ、なんとか、以前のものとおなじような見栄えにはなりますね。(XSLT2.0ならもっといろいろとできるでしょうけども)
以下マニュアル引用


PL/SQL XSLT Processor for XMLType: Features

PL/SQL XSLT Processor for XMLType (DBMS_XSLPROCESSOR) is the Oracle XML DB implementation of the XSL processor. This follows the W3C XSLT final recommendation (REC-xslt-19991116).

W3C XSL Transformations(XSLT) バージョン 1.0の和訳はこちら。
http://www.infoteria.com/jp/contents/xml-data/REC-xslt-19991116-jpn.htm

次回へつづく。




植木等さんの名作といえば、無責任シリーズかもしれません。(今見ても、笑えますもん)
ただ、私などはリアルタイムで無責任シリーズを見た世代ではないので、「オヨビでない奴!」というドラマの印象が強烈かもしれない。
所ジョージと高橋良明が植木等にからみ、植木等の3乗くらいの面白さのあったドラマに仕上がっていたと思います。
ところで、所ジョージに植木等のまねをやらせたら似てるよ、きっと。。。

植木等さんのご冥福を心よりお祈りいたします。

| | コメント (0) | トラックバック (0)

Mac De PL/SQL RSS Reader #29 (XSLT編#1)

ノドが痛いと思っていたら、熱。インフルエンザではないが、風邪には違いない。(油断禁物ですね。。)1日休んだら、回復しましたけど、本調子に戻っていないので今日はおとなしくして明日は完全復活する予定。(週末は花見もしないとならんし。。な)


さて、PL/SQLでRSS Readerを作ってきたが、XSLTスタイルシートを利用した場合はどうなるか?
ということで、以前のプロシージャをベースに、XSLT版に書き換えてみることにする。

利環境は前回からの続きなので変更はないのだが、念のために、データベース、Web Toolkit、そして、Apexのバージョンを載せておく。

SYS> select version from v$instance;

VERSION
-----------------
10.1.0.3.0


SYS> select owa_util.get_version from dual;

GET_VERSION
--------------------------------------------------------
10.1.2.0.6

SYS> select flows_030000.wwv_flows_release from dual;

WWV_FLOWS_RELEASE
--------------------------------------------------------
3.0.0.00.20

SYS>

尚、開発には、 Oracle SQL Developer 1.1.2.25 Build Main 25.79 を使用した。

SQL Developerでは、OWAの出力もできるようなので試したかったということもあったのだが。。。

試してみるとOWAが書き出す量が多いとエラーになるようだ、具体的にどの程度ということまでは確認していないのだが。。HTP.PRNで4000バイト以上は書き出している。
但し、エラー時にもHTP.PRINTでエラー内容を出力しているのだが、こちらは、画面のスナップショットからも判るように問題なく表示されている
(前述の問題は、dbms_outputパッケージで代用できるので、特に困るということもないので深入りしないでスルー。(^^;;;)


X1 X2

前回までとは異なり、PL/SQL内部でDOMをトラバースしたりすることはせず、XSLTスタイルシートを利用してRSS/RDF/ATOMをHTMLに変換する。
変換後のHTMLには、FEEDのタイトル及びリンク、各記事の要約とリンク、それに記事の作成日があれば表示することにした。
尚、記事の作成日については、該当要素値から日付(RFC3339形式)部分を表示することにした。(RFC882形式の場合は、曜日も含める)
また、XSLスタイルシートの読み込み方法は幾つかあるが、今回はディレクトリオブジェクト以下にあるスタイルシートを読み込むことにした。。

XSLTスタイルシートで、xsl:choose要素や、xsl:if要素。xsl:variable要素なんて多用してしまうと、もの凄く読みにくいJSPのようになってしまいそうな気がする。。。
ところで、しっかりと内容を確認していないのだが、XML Master professional Database を取るべきか、Applicationを取るべきか悩みなすね。。


DBMS_OUTPU.PUT_LINEを利用してデバック変換後のHTMLを表示しているところ。

X3 X4
X5 X6


適当に作ったXSLTスタイルシートもなんとか思い通りのもにに仕上がったので、Apex3.0でお試し。。

次回へつづく。

| | コメント (0) | トラックバック (0)

2007年3月23日 (金)

Mac De Apex3.0 #5

さて、以前にも少々触れたが、Apexのupgradeの失敗、又は、upgrade後に以前のリリースに戻す方法について、備忘録程度に記述しておく。

手順については、マニュアルにも記載されているが、imageファイルについては、移行前に別名で保存して必要があるのでお忘れなく。
http://download-west.oracle.com/docs/cd/B32472_01/doc/install.300/b32468/trouble.htm#BABDJIFE


HTMLDB1.5からはじまり、HTMLDB2.0、APEX2.2そして、APEX3.0へと移行したのだが、前リリースのimagesフォルダや、marvel.conf(利用しているHTTP Serverによっては、dads.confを使用している場合あり)は、それぞれ別名で退避、また移行後、旧リリースのスキーマを削除していないことを前提としている。

以下はApex3.0移行後にApex2.2へ戻す例である。尚、apexは停止しておくこと!。


  1. Apex3.0用imagesディレクトリを別名で退避(以下例では、images_30として改名)又は、削除する。

  2. 事前に退避しておいた、Apex2.2用imagesディレクトリ(以下の例では、images_22)をimagesディレクトリとして改名又はコピーする。

  3. Apex3.0用に書き換えたmarvel.confを別名で退避(以下例では、marvel.conf.30と改名)又は、削除する。

  4. 事前に退避しておいた、Apex2.2用marvel.confファイル(以下例では、marvel.conf.22)をmarvel.confに改名又はコピーする。

  5. SQL*Plusを起動し、SYSユーザ接続後、スキーマを FLOWS_020200(Apex2.2用スキーマ)に変更する。

  6. flows_020200.wwv_flow_upgrade.switch_schemas()プロシージャにて、APEXのスキーマをFLOWS_030000(Apex3.0用スキーマ)からFLOWS_020200(Apex2.2スキーマ)に切り替える。

  7. flows_030000スキーマを削除する。


以上のような手順でApex3.0からApex2.2に戻す事ができる。以下はApex3.0からApex2.2に戻した際のログである。
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ ll | grep images
drw-r----- 881 oracle oinstall 29954 Mar 18 17:21 images
drw-r----- 998 oracle oinstall 33932 Mar 18 14:33 images_20
drw-r----- 876 oracle oinstall 29784 Mar 18 13:00 images_22
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ mv images images_30
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ cp -rf images_22 images
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ cd ../apache/modplsql/conf
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/apache/modplsql/conf oracle$ ls marvel*
marvel.conf marvel.conf.20 marvel.conf.22
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/apache/modplsql/conf oracle$ mv marvel.conf marvel.conf.30
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/apache/modplsql/conf oracle$ mv marvel.conf.22 marvel.conf
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ sqlplus /nolog
> conn sys/xxxx@tiger as sysdba
SYS> l
1 select
2 username,
3 account_status
4 from
5 dba_users
6 where
7 username like '%¥_PUBLIC¥_%' escape '¥'
8 or username like 'FLOWS¥_%' escape '¥'
9 order by
10 account_status,
11* username
SYS> /

USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
FLOWS_020000 LOCKED
FLOWS_020200 LOCKED
FLOWS_030000 LOCKED
FLOWS_FILES LOCKED
APEX_PUBLIC_USER OPEN
HTMLDB_PUBLIC_USER OPEN

6行が選択されました。

SYS>
SYS> alter session set current_schema = FLOWS_020200;

セッションが変更されました。

SYS> exec flows_020200.wwv_flow_upgrade.switch_schemas('FLOWS_030000','FLOWS_020200');

PL/SQLプロシージャが正常に完了しました。

SYS> drop user flows_030000 cascade;

ユーザーが削除されました。

SYS>

これでApex2.2への戻しは終了である。

注意)HTMLDB_PUBLIC_USERというスキーマは、HTMLDB2.0までの接続スキーマである。HTMLDB2.0以前に戻す可能性がある場合にはこれも残しておく(lockしておいたほうがより安全だが)か、退避しておく必要がある。また、FLOWS_020000というスキーマはHTMLDB2.0のスキーマである。

| | コメント (0) | トラックバック (0)

2007年3月22日 (木)

Mac De APEX3.0 #4

さて、HTMLDB2.0からAPEX3.0への移行は簡単だったが、HTMLDB2.0や、APEX2.2でいろいろな問題のあったSVGチャートはどうなったのか?
SVGViewerの開発元であるアドビ社は、SVGViewerの開発を中止したようなので、APEXのチャートのサポートはどうなるのか少々気になっていたのだが、先日APEX3.0がリリースされ、SVGではなく、Flashもサポートされていた。お〜〜〜っ。これで、日本語も表示できるか??? 

まずは、はやり、AppleのCMからどうぞ。

Apple_pie_chart



ということで、マニュアルに示されている手順で、SVGチャート扱うアプリケーションをFLASHチャートを扱えるように移行する。実はこの移行手順も簡単なのだ。クリック、クリック、クリック。とクリックするだけで移行作業を行える。
(尚、MacOSXは、最新パッチを適用した 10.4.9 である。)

最後に、前回、日本語が化けるので凡例部分をローマ字にしていたバリバリ鎌倉円グラフを。。。おおお〜〜表示されました〜〜。

Fin

移行手順は、SVGチャートを配置しているページの該当リージョン開き、右側の枠に表示される、"SVGチャートのFLASHチャートへの移行"というリンクをクリックだけ!
その模様はQuickTImeムービーでどうぞ。


(再生にはQuickTimeが必要です。)


svg_2_flash

| | コメント (0) | トラックバック (0)

2007年3月21日 (水)

Mac De APEX3.0 #3

● APEX3.0 日本語リソースのインストール

apex_3.0.zipを解凍して作成されるディレクトリのbuilder/jaに移動し、load_ja.sqlスクリプトをsysユーザで実行する。
NLS_LANGは、AL32UTF8へ一時的に変更し、Terminalの文字エンコーディングもUTF-8変更しておく!

Apex30_terminal_utf8

G5Server:/Volumes/DiscusWork/temp/apex/builder/ja oracle$ ls -l load_ja.sql
-r--r--r-- 1 oracle oinstall 2319 Feb 28 04:35 unload_ja.sql
G5Server:/Volumes/DiscusWork/temp/apex/builder/ja oracle$
G5Server:/Volumes/DiscusWork/temp/apex/builder/ja oracle$ echo $NLS_LANG
Japanese_Japan.JA16SJISTILDE
G5Server:/Volumes/DiscusWork/temp/apex/builder/ja oracle$ export NLS_LANG=japanese_japan.AL32UTF8
G5Server:/Volumes/DiscusWork/temp/apex/builder/ja oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 月 3月 17 23:17:47 2007

Copyright (c) 1982, 2004, Oracle. All rights reserved.

> conn / as sysdba
接続されました。
SYS> alter session set current_schema = FLOWS_030000;

セッションが変更されました。

SYS> @load_ja
. ____ ____ ____ ____
. / \ | \ /\ / | /
.| || / / \ | | |
.| ||--- ---- | | |--
.| || \ / \ | | |
. \____/ | \/ \ \____ |____ \____
.
. Application Express Hosted Development Service Installation.
.........................................................

PL/SQLプロシージャが正常に完了しました。

Install Application Express applications

PL/SQLプロシージャが正常に完了しました。

APPLICATION 4420 - APEX - System Messages

・・・・中略・・・・

APPLICATION 4009 - APEX - Application Builder
Set Credentials...
Check Compatibility...
API Last Extended:20070108
Your Current Version:20070108
This import is compatible with version: 20070108
COMPATIBLE (You should be able to run this import without issues.)
Set Application ID...
...authorization schemes
...navigation bar entries
...application processes
...application items
...application level computations
...Application Tabs
...Application Parent Tabs
...Shared Lists of values
...Application Trees
...page groups
...PAGE .4009: ページ0(ゼロ)
...PAGE 1.4009: アプリケーション・ビルダー
...PAGE 2.4009: サポートするオブジェクト
...PAGE 3.4009: ブレッドクラム・エントリ
...PAGE 4.4009: マスター表の定義
...PAGE 5.4009: ディテール表を定義
...PAGE 6.4009: アイテム・ラベルのグリッド編集

・・・・中略・・・・

...PAGE 1.4709: 作業領域のリクエスト - 最初のページ
...PAGE 3.4709: 作業領域のリクエスト - 確認
...PAGE 10.4709: 作業領域のリクエスト - 管理者
...PAGE 20.4709: 作業領域のリクエスト - 作業領域
...PAGE 25.4709: 作業領域のリクエスト - スキーマの指定
...PAGE 26.4709: 作業領域のリクエスト - スキーマに関する警告
...PAGE 27.4709: 作業領域のリクエスト - プロジェクトの説明
...PAGE 30.4709: 作業領域のリクエスト - 確認
...PAGE 40.4709: 作業領域のリクエスト - 新規または既存のスキーマ

・・・・中略・・・・

...authentication schemes
......scheme 108165525079033088.4709
...done
Adjust instance settings

PL/SQLプロシージャが正常に完了しました。

SYS> exit
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining optionsとの接続が切断されました。
G5Server:/Volumes/DiscusWork/temp/apex/builder/ja oracle$

● 確認

APEX3.0への移行は特に問題もなく終了した。作業が簡単なのは、本当にうれしいねぇ。 (^^;;;。
(9iASや、10g Application Serverのupgradeも、もっと簡単になれば、もっとうれしいと思うのだが。。) 


Start_apex30 Apex30_test

今日はここまで。
次回は、チャートの表示がSVGViewerからFlashに変更されたので、以前SVGチャートを試したdemoアプリケーションをFlashに移行し、「パイチャート」を表示してみることにする。

| | コメント (0) | トラックバック (0)

2007年3月20日 (火)

Mac De Apex3.0 #2

HTMLDB2.0からAPEX3.0への移行作業。その2。

事前準備は整ったので、HTMLDB2.0からAPEX3.0へupgradeする。
尚、新規インストールなのか移行なのかを意識することはない楽で簡単ですね。
apex_3.0.zipを解凍した際に作成されるapexディレクトリ直下にあるapexins.sqlを実行するだけでよいので、非常に簡単。とは言っても心配ならはバックアップを取得しておいたほうがよいだろう。


尚、APEXのインストールでは、リリース毎に新たなスキーマが作成され、旧スキーマが残されている。
APEX3.0に移行したとしても、容易に以前のリリースに戻せるようになっている。 したがって、移行後すぐに旧スキーマを削除せず、しばらくの間は移行前のスキーマを残しておくという方法も取れる。
HTMLDB2.0からAPEX3.0の例でいえば、 FLOWS_020000が、HTMLDB2.0のスキーマで、新たにFLOWS_030000というスキーマが作成される。FLOWS_020000と関連するイメージファイル、marvel.conf(dads.confの場合もあり)を別途退避しておけば、その必要があればHTMLDB2.0環境へ戻すこともできる。

前置きが長くなったが作業再開。

尚、apexins.sqlでは、英語版がインストールされるので注意が必要、日本語リソースを別途インストールしないと、APEXのメニューなどは英語表記のままだ(online helpには日本語ヘルプは用意されていないようだ。)

ただし、日本語リソースをインストールしなくても、日本語を扱うアプリケーションは作成できる(ようだ)。
簡単に確認しただけなので、全く問題とは言い切れないが・・・・。


SYS> @apexins apex_master SYSAUX SYSAUX TEMP /i/
. ____ ____ ____ ____
. / ¥ | ¥ /¥ / | /
.| || / / ¥ | | |
.| ||--- ---- | | |--
.| || ¥ / ¥ | | |
. ¥____/ | ¥/ ¥ ¥____ |____ ¥____
.
. Application Express Installation.
...................................

F
-
2


FOO_USR
------------------------------
FLOWS_020000


PL/SQLプロシージャが正常に完了しました。


PL/SQLプロシージャが正常に完了しました。


レコードが選択されませんでした。


PL/SQLプロシージャが正常に完了しました。

I. O R A C L E S Y S I N S T A L L P R O C E S S
...create flows user

ユーザーが作成されました。

・・・・中略・・・・

......Message master_detail
......Message master_detail_edit
......Message master_detail_detail
......Message sw_empty_script
......Message sw_greater_than_30k
......Message confirm_create_master_detail
......Message confirm_3_page_master_detail
......Message confirm_2_page_master_detail
......Message confirm_master_table
......Message confirm_master_display_columns
......Message confirm_detail_table
......Message confirm_detail_display_columns
......Message confirm_master_sort
......Message confirm_include_master_report

・・・・中略・・・・

...PAGE 0: Page Zero
...PAGE 1: Application Builder
...PAGE 2: Supporting Objects
...PAGE 3: Breadcrumb Entries
...PAGE 4: Define Master Table
...PAGE 5: Define Detail Table
...PAGE 6: Item Label Grid Edit
...PAGE 7: Delete Multiple Items
...PAGE 8: Referenced Components
...PAGE 9: Shared Components

・・・・中略・・・・

...done load verification images
Verification Images Loadのタイミング。
経過: 00:00:01.13
VII. L O A D E N G L I S H D I C T I O N A R Y

トリガーが変更されました。

...10000 rows
...20000 rows
...30000 rows
...40000 rows
...50000 rows
...60000 rows
...70000 rows
English Dictionaryのタイミング。
経過: 00:04:56.56



Thank you for installing Oracle Application Express.

Oracle Application Express is installed in the FLOWS_030000 schema.

The structure of the link to the Application Express administration services is as follows:
http://host:port/pls/apex/apex_admin

The structure of the link to the Application Express development interface is as follows:
http://host:port/pls/apex

-- Now beginning upgrade. This will take several minutes.-------
-- Ensuring template names are unique -------
-- Migrating metadata to new schema -------
-- Switching builder to new schema -------
-- Migrating SQL Workshop metadata -------
-- Upgrading new schema. -------
-- Copying preferences to new schema. -------
-- Updating user account expiration. -------
Upgrade completed successfully no errors encountered.
-- Upgrade is complete -----------------------------------------
Upgradeのタイミング。
経過: 00:01:15.78
JOB_QUEUE_PROCESSES: 10

Performing Application Express component validation - please wait...

Completing registration process.
Validating installation.
Validate Installationのタイミング。
経過: 00:05:56.91
Complete Installationのタイミング。
経過: 00:31:02.26

● お約束、imagesフォルダの入れ替え。


このディレクトリは、前述のapexins.sqlで指定した /i/ という仮想ディレクトリにマッピングされている。
仮想ディレクトリ /i/ にマップされている実ディレクトリはmarvel.confで確認できる。
尚、利用しているHTTPサーバー毎に構成ファイルが異なるので要注意。詳細は、マニュアルの4.3.1.1 Copying the Images Directory When Upgradingを参照のこと。

G5Server:˜/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ ls -l images*
drw-rw---- 998 oracle oinstall 33932 Mar 17 20:19 images
drw-rw---- 1334 oracle oinstall 45356 Mar 10 22:10 images_1_5
G5Server:˜/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ mv images images_2_0
G5Server:˜/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ cp -rf /Volumes/DiscusWork/temp/apex/images .
G5Server:˜/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ ls -l images*
drw-rw---- 881 oracle oinstall 29954 Mar 17 22:45 images
drw-rw---- 1334 oracle oinstall 45356 Mar 10 22:10 images_1_5
drw-rw---- 998 oracle oinstall 33932 Mar 17 20:19 images_2_0


● HTTPサーバーの構成ファイルの書き換え


利用しているHTTPサーバーに対応した構成ファイルをapex30向けに書き換える。
当環境では、marvel.confである。変更内容は以下の通り。

(余談だが、marvel.confを書き換えずに試したところ、特に問題もなくAPEX3.0が利用できた。URLのパスを変更したくない場合には、他のパラメータを変更するだけでも問題ないかもしれない。詳細未確認。)

G5Server:˜/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$ diff marvel.conf.org marvel.conf
2c2
< <Location /pls/htmldb>
---
> <Location /pls/apex>
7c7
< PlsqlDatabaseUsername HTMLDB_PUBLIC_USER
---
> PlsqlDatabaseUsername APEX_PUBLIC_USER
10c10
< PlsqlDefaultPage htmldb
---
> PlsqlDefaultPage apex
13c13
< PlsqlDocumentProcedure wwv_flow_file_manager.process_download
---
> PlsqlDocumentProcedure wwv_flow_file_mgr.process_download
15c15
< PlsqlNLSLanguage JAPANESE_JAPAN.JA16SJISTILDE
---
> PlsqlNLSLanguage JAPANESE_JAPAN.AL32UTF8
G5Server:˜/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$

今日はここまで、日本語リソースのインストールへつづく。


聞いている曲:
Howard Jones - The Peaceful Tour - Things Can Only Get Better Howard Jones - The Peaceful Tour - Things Can Only Get Better

| | コメント (0) | トラックバック (0)

Mac De Apex3.0 #1

Apex3.0がリリースされたので、早速、HTML2.0やApex2.2から移行してみた。また、今回のリリースからいろいろと問題のあるSVGViewerへの対応として、Flashがサポートされたようなのでグラフ関係の動作も簡単に確認してみた。(各ブラウザがネイティブにSVGをサポートしてもらい、プラグインを必要としなくなるのが一番。ちなみにSafariでは、MacOSX 10.5からサポートされるようだ。

マニュアルによると、apex3.0へ移行できると記載されているリリースは

      1.5.0.00.33
      1.5.1.00.12
      1.6.0.00.87
      1.6.1.00.03
      2.0.0.00.49
      2.2.1.00.04
と記載されている

今回は、HTML2.0 2.0.0.00.49を利用して、apex3.0へ移行してみることにする。
(Apex2.2からApex3.0については別途試してみ予定だ。)


尚、HTML2.0からApex3.0への移行手順は、以前 HTMLDB2.0からApex2.2で行った手順とほぼ同じだが、OWAはパッチではなく別途upgradeが必要なので注意が必要だ。

また、MacOSX Serverのバージョンも最新版の 10.4.9 に、Oracle10g R1 10.1.0.3.0という環境で確認した。 (PowerMac G5 Dual 2.7Ghz RAM:1GB)


参考:http://d.hatena.ne.jp/satonaoki/20070328/p1

では、早速取りかかる。

尚、インストール手順や、インストール要件は、マニュアルにキッチリ記載されているので問題はないだろう。


● 移行前の事前確認

(1)HTMLDBのバージョン確認

> conn / as sysdba
接続されました。
SYS> select flows_020000.wwv_flows_release from dual;

WWV_FLOWS_RELEASE
------------------------------------------------------
2.0.0.00.49

SYS>


(2)表領域の空き容量確認

お遊び環境なので、SYSAUXは自動拡張にしてあり、容量は問題ない。

SYS> l
1* select file_name,tablespace_name,autoextensible from dba_data_files
SYS> /

FILE_NAME TABLESPACE_NAME AUT
---------------------------------------------------------------------- ------------------------------ ---
/Volumes/DiscusWork/4oracle/u02/oradata/tigerx/xtiger/users01.dbf USERS YES
/Volumes/DiscusWork/4oracle/u02/oradata/tigerx/xtiger/sysaux01.dbf SYSAUX YES
/Volumes/DiscusWork/4oracle/u02/oradata/tigerx/xtiger/undotbs01.dbf UNDOTBS1 YES
/Volumes/DiscusWork/4oracle/u02/oradata/tigerx/xtiger/system01.dbf SYSTEM YES
/Volumes/DiscusWork/4oracle/u02/oradata/tigerx/xtiger/example01.dbf EXAMPLE YES
/Volumes/DiscusWork/4oracle/u02/oradata/tigerx/xtiger/FLOW_1.dbf FLOW_1 YES

6行が選択されました。

SYS>


(3)shared_pool_sizeも要件通なので特に変更する必要もない

SYS> show parameter shared_pool_size

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
__shared_pool_size big integer 100M
shared_pool_size big integer 100M
SYS>


(4)Oracle TextとOracle XML Databaseはインストールされているので問題なし。

SYS> col version for a20
SYS> /

COMP_NAME VERSION STATUS
---------------------------------------- -------------------- -----------
Oracle Database Catalog Views 10.1.0.3.0 VALID
Oracle Database Packages and Types 10.1.0.3.0 VALID
Oracle Workspace Manager 10.1.0.2.0 VALID
JServer JAVA Virtual Machine 10.1.0.3.0 VALID
Oracle XDK 10.1.0.3.0 VALID
Oracle Database Java Packages 10.1.0.3.0 VALID
Oracle Expression Filter 10.1.0.3.0 VALID
Oracle interMedia 10.1.0.3.0 VALID
Oracle Data Mining 10.1.0.3.0 VALID
Oracle Text 10.1.0.3.0 VALID
Oracle XML Database 10.1.0.3.0 VALID
OLAP Analytic Workspace 10.1.0.3.0 VALID
Oracle OLAP API 10.1.0.3.0 INVALID
OLAP Catalog 10.1.0.3.0 VALID
Spatial 10.1.0.3.0 VALID
Oracle Ultra Search 10.1.0.3.0 VALID
Oracle Enterprise Manager 10.1.0.3.0 VALID

17行が選択されました。

SYS>


(5)OWA WebTool kitのバージョン確認


Web Toolkitについては、10.1.2.0.6以上が必要ということなので確認しておく。
http://download-west.oracle.com/docs/cd/B32472_01/doc/install.300/b32468/pre_require.htm#BABGBJJDより引用


2.7 PL/SQL Web Toolkit


Oracle Application Express requires the PL/SQL Web Toolkit version 10.1.2.0.6 or later. For instructions on determining the current version of the PL/SQL Web Toolkit, and for instructions on installing version 10.1.2.0.6, please review the README.txt file contained in the directory apex/owa.

SYS> select owa_util.get_version from dual;

GET_VERSION
--------------------------------------------------------------------------------
9.0.4.0.2

SYS>


となっている。Oracle10g R1のcompanion CDに含まれるOWA Web Toolkitは、Oracle9i時代のものに近いバージョンなので、ガイドで示されているリリースより古いことが多いので、この点はしっかり確認しておきたい。
今回、apex3.0への移行要件を満たすには、OWA Web Toolkitをアップデートするだけで良さそうだ。


以下、apex_3.0.zipを解凍して作成されるapex/owaディレクトリにある OWA Web Toolkit以降手順の引用

G5Server:/Volumes/DiscusWork/temp/apex/owa oracle$ view README.txt

PL/SQL Web Toolkit 10.1.2.0.6
-----------------------------

Application Express 3.0 requires PL/SQL Web Toolkit version 10.1.2.0.6 or greater.

As a convenience, the PL/SQL Web Toolkit 10.1.2.0.6 is included with Application Express 3.0
in the apex/owa directory. This version of the PL/SQL Web Toolkit is not a replacement for
subsequent versions of the PL/SQL Web Toolkit, as delivered with database patch sets or
Critical Patch Updates.

If the PL/SQL Web Toolkit version is lower than version 10.1.2.0.6, the included PL/SQL Web
Toolkit bundled with Application Express 3.0 should be installed prior to the installation of
Application Express 3.0.


To determine the PL/SQL Web Toolkit version, connect to the database as the SYS user and
run the query:

select owa_util.get_version from dual;


Installing the PL/SQL Web Toolkit 10.1.2.0.6
--------------------------------------------
1) Stop all applications using the database
2) Navigate to the directory apex/owa
3) Connect via SQL*Plus as the database user SYS
4) Run the PL/SQL Web Toolkit installation script by issuing: @owainst.sql
5) Review the output displayed from owainst.sql and ensure no errors were encountered.
6) Confirm the PL/SQL Web Toolkit version is 10.1.2.0.6 or greater by connecting to the database
as the SYS user and running the query:

select owa_util.get_version from dual;

7) Run the utlrp.sql script from the Oracle Database home to recompile all invalid PL/SQL
packages now instead of when the packages are accessed for the first time. This step is
optional but recommended. To run utlrp.sql, issue: @?/rdbms/admin/utlrp.sql


記載されている手順通りに実行すれば問題ない。

SYS> @owainst

PL/SQLプロシージャが正常に完了しました。


PL/SQLプロシージャが正常に完了しました。


PL/SQLプロシージャが正常に完了しました。


OWA_DBG_MSG
--------------------------------------------------------------------------------
Installed OWA version is: 9.0.4.0.2;
Shipped OWA version is : 10.1.2.0.6;
OWA packages v10.1.2.0.6 will be installed into your database v101030
Will install owadummy.sql and owacomm.sql




セッションが変更されました。


PL/SQLプロシージャが正常に完了しました。

エラーはありません。

パッケージが作成されました。

エラーはありません。

セッションが変更されました。

SYS> @?/rdbms/admin/utlrp

TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN 2007-03-19 19:06:55


PL/SQLプロシージャが正常に完了しました。


TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_END 2007-03-19 19:07:36


PL/SQLプロシージャが正常に完了しました。

SYS>


念のため、OWA Web Toolkitのバージョンを確認しておく。

SYS> select owa_util.get_version from dual;

GET_VERSION
--------------------------------------------------------------------------------
10.1.2.0.6

SYS>

今日はここまで、次回へつづく。




聞いている曲 :
Chris "Big Dog" Davis, Kim Waters & Salena Gibbs - Smooth Jazz Plays Motown's Greatest Love Songs - Ain't No Mountain High Enough (USA)  
Chris "Big Dog" Davis, Kim Waters & Salena Gibbs - Smooth Jazz Plays Motown's Greatest Love Songs - Ain't No Mountain High Enough

| | コメント (0) | トラックバック (0)

2007年3月17日 (土)

Oracle Application Express 3.0リリース

Oracle Application Express 3.0がOTN USでリリースされたようですね。MacOSXもsupportされているようなので早速ダウンロード。
簡単に遊んだ結果は後日。

| | コメント (0) | トラックバック (0)

2007年3月15日 (木)

ある日の午後の鎌倉にて

久々にAPEX (旧HTML DB)ネタ。 

APEXでは、Adobe社から配布されるSVGViewer プラグインをインストールすれば円グラフ
(Pie chart、 そう、AppleのCMでおなじみのパイチャートのCMのあれ)
なども描画できる。 (FirefoxなどSVGをネイティブにサポートし始めているブラウザも多くなっているが、ユーザの多いはずのでIEはサポートしてくれるのかまだ不明。。MacOSX10.5 LeopardではSafariでもサポートし始めるらしい。2007/3/24追記

で、MacOSXのSafari2.0.4ではどうなのか試してみる。

まずは、AppleのCMをどうぞ。

Apple_pie_chart


MacOSXは、最新パッチを適用した 10.4.9 である。


SVGViewer プラグインの日本語Carbon版をダウンロードしてインストールしてみる。
あ、エラー!  10.4.9には対応していないか〜〜っ!。
Svgviewer_install_error
forumを見てみると、どうも、10.4.8でも同じような問題があるようだ。

だが、テストページで確認してみると、Firefox2及び、Safariのどちらも画像は表示されている。。。どういうこと???  
とりあえず、このままテストしてみることにしたのだが、APEXでパイチャートを表示しようとするとSafariはクラッシュしてしまった。あきらめて、Firefox2で試す事にした。(Safari風なFirefoxにしてます)


で、ある日の午後の鎌倉でまったりを表現した (笑) のが以下の円グラフ
Apex_de_pie_chart
日本語版SVGViewerをインストールしたのだが、前述のエラーの影響か? 日本語が化けるのでグラフ中の文言での日本語利用はあきらめた。。。。。
2007/3/16追記。
”Adobe to Discontinue Adobe SVG Viewer”だそうですね。
他のプラグインがあればそれはそれでいいのでしょうけど。。どおりで、リリース時期が古いわけだ。。。


尚、上記は、APEXのサンプルアプリケーションのデータを無理矢理書き換えて利用している。


●まずはバリバリ鎌倉画像を。。

Cimg2416_2 Cimg2419_2 Cimg2424
Cimg2458 Cimg2464_2



●そして、スタバでまったり・・・・。

Cimg2456

| | コメント (0) | トラックバック (0)

2007年2月22日 (木)

Mac De PL/SQL RSS Reader #28 - メモ

OTN-JフォーラムのFEEDはUS OTNと同じく、RSS2.0となっているようだ。(下記XMLソース抜粋参照のこと。)


item要素にはネームスペースで拡張された、jf:creationDate要素や、jf:author要素は存在するが、author要素や、pubDate要素が存在しない。

そのため、FirefoxやSarafi、Google RSS readerなどでは、投稿者や日時が表示されない。
US OTNの場合と同じなのだが、投稿日があると便利でしょと思うのは私だけ?

Safariでは投稿日関連する要素が存在しない場合には、FEEDを取込んだ日時を表示してくれるので、多少は助かる。
Safari


Firefox2では、日時表示は全くない(pubDate要素がないので当然だが。。)
Firefox2


Google ReaderでもFirefox2に同じ。
Googlerssreader

リニューアルついでなので、author要素や、pubDate要素くらい追加してもらえるといいのだが・・・OTN-Jさん。。。と思いつつ。。





ということで、Apex2.2に組み込んだPL/SQLのRSS FEED Readerのコードを変更するのもいいかと思い始めた。


例えば、OTNのRSS2.0 FEEDのように、item要素には、pubDate要素が含まれず、名前空間で拡張されたjf:creationDate要素がある場合、
RSS FEED Reader側で、どのネームスペースのどの要素を使うかなんて設定できるようにすれば、便利かな〜〜と思った次第。。
(あと、jf:createDate要素値は、rfc822形式のようだが、曜日が日本語表記なので、英語表記へ変換する必要あり。(現行のコードのままだと例外が飛ぶはずなので、それも含め、コードの見直しを考えてみますか。。。

<rss version="2.0" xmlns:jf="http://www.jivesoftware.com/xmlns/jiveforums/rss">
<channel>
・・・・中略・・・・
<item>
<title>Re: 追記: 名前空間を使用したXqueryの使用方法に関して</title>
<link>http://otn.oracle.co.jp/forum/thread.jspa?messageID=35001142&tstart=0#35001142</link>

<description><![CDATA[名前空間のURLが間違っているのでは? (.xsd が抜けているとか。)]]></description>

<jf:creationDate>金, 09 2 2007 18:55:56 +0900</jf:creationDate>
<jf:modificationDate>金, 09 2 2007 18:55:56 +0900</jf:modificationDate>
<jf:author>xxxxxx</jf:author>
<jf:replyCount>0</jf:replyCount>
</item>
・・・・以下略・・・・

| | コメント (2) | トラックバック (0)

2007年2月21日 (水)

Mac De PL/SQL RSS Reader番外編-OTN-J Forum RSS FEED配信開始記念?!

2月1日からOTN-JのForumがリニューアルされ、US OTNのForumのように新規投稿がRSS FEEDで配信されるようになった。(やっとと言った感じ。US OTNに遅れること。。。?年という感じなので待ちくたびれていたところだった。。。)

さっそく、Safariで、会議室のFEEDをブックマークしてみるとUS OTNのように新着記事が取込まれている。。
クリックして各記事を眺めてみても問題なさそうだなぁ。
と思い、折角だから、Apex2.2に組み込んだ RSS READERで試しはじめたころから、リニューアルしたフォーラムの問題に気づき始める。。。。

まず、以前にも試していた、PL/SQLでRSS FEED ReaderをApex2.2に組み込み、OTN-JのFEEDを取込むと、、、なんと、パースエラー!
ん? このエラーは、以前にも見たような気がする。。が、ちゃんとUTL_HTTPパッケージを利用し、UTF-8で取込むことで回避したはずだ。。おかしい。。Safariでは文字化けなど発生していない!!

Xml_parse_error_plsql


そこで、MacOSX版 Firefox2でプレビューモードにしてOTN-JのFEEDを取込んでみると。。。
お〜〜〜。見事にXMLパースエラー!!

Xml_parse_error


ところが、再度行うと、今度は、文字化け!
さらに不思議なことに、、、ブックマークしたFEEDのエントリは文字化けしていないではないか??(なんだこりゃ!)

Xml_no_parse_error_but


その後、何度か試していると、上手く取込める場合、XMLパースエラーになる場合、パースエラーにはならないが文字化けする状態がランダムに発生することが分かった。
UTF-8以外の文字コードで送信されてしまう状態がランダムに発生しているようにみえた。(・・・経路が違うのかもしれない。例えばキャッシュを経由した場合とそれ以外のように、。。と勝ってに想像したりしている。)

そして、OTN-Jがリニューアルされてから、9日目のこと、Firefox2上でのFeedの文字化けも収まった?模様?で、文字化けやXMLパースエラーにはお目にかからなくなった。


ということで、再度、Apex2.2に組み込んだPL/SQLで作成したFEED READERで、OTN-JのXMLの部屋のFEEDを取込んでみた。


(再生にはQuickTimeが必要です。)

apex2.2

なんとか、読めるようになりましたね。。。。。OTN-J様。ご苦労さまです。m(_ _)m。

| | コメント (0) | トラックバック (0)

2006年11月20日 (月)

Mac De PL/SQL RSS Reader #27 (+)

Mac De PL/SQL RSS Reader #27で公開したコードがOTN-JapanのCocd Tipsで公開されました。

尚、記事が大きく3分割してあります。

Code Tips PL/SQLで RSS Feed Reader (1/3)
Code Tips PL/SQLで RSS Feed Reader (2/3)
Code Tips PL/SQLで RSS Feed Reader (3/3)

尚、OTN-JapanのCode Tipsを見るには、OTN-Japanへのユーザ登録が必要です。

※オラクルライセンスセンターのアフィリエイトも追加しました。



いいねぇ、Saigenji

聞いている曲:Saigenji - SAIGENJI - 孤動 saigenji - SAIGENJI - 孤動

| | コメント (0) | トラックバック (0)

2006年11月 4日 (土)

Mac De PL/SQL RSS Reader #27

RSS Readerの続き。

週末、美味しいワインのつまみのレシピを多摩美の芸術祭りに模擬店を出しているmiwaさん教えてもらいニッコリ!!

さて、APEX2.2に組み込んだPL/SQLで作成したRSS Readerストアドプロシージャのソースを公開。
ひとまず、これで、RSS Readerネタは終了。
Oracle Portalのデータベースポートレット向けにするとか、XSLT版というのも面白いと思っているが、それらはまた、気が向いたときにでも。。 

以下は、APEXに組み込んだデモをQiuckTime Movieにしたもの。(再生にはQuickTimeが必要です。)


Apex_de_rss_reader_demo4


そして、RSS Readerストアドプロシージャのソースは以下。
ただし、ブラウザに表示するためソースコードの一部の文字を
文字参照に置換してある。( < > " ¥ など) 

オリジナルのスクリプトrss_reader.sqlはこちら。(エンコーディングは、shift_jis。)

(RFC822や、RFC3339のDate / Time関連関数は、ストアドプロシージャの内部関数化してある。これらをパッケージ化するほうが分かりやすくなるかもしれないが、それらの内部関数を単独で利用することもないのでストアドプロシージャの内部関数としてある。)

CREATE OR REPLACE PROCEDURE RSS_READER
(
i_feedXmlUrl IN VARCHAR2
)
AS
--============ TYPEs/VARIABLEs ===============================================
C_RSS CONSTANT VARCHAR2(7) := 'rss';
C_RDF CONSTANT VARCHAR2(7) := 'rdf:RDF';
C_ATOM CONSTANT VARCHAR2(7) := 'feed';
-- C_ATTR_NAME_VERSION CONSTANT VARCHAR2(7) := 'version';

v_feedXmlUrl VARCHAR2(32767);

TYPE FeedEntryType IS RECORD
(
title VARCHAR2(2000),
link VARCHAR2(200),
published TIMESTAMP WITH LOCAL TIME ZONE
);
v_feedEntryList DBMS_XMLDOM.DomNodeList;
v_feedTitle VARCHAR2(2000);
v_feedUrl VARCHAR2(200);

v_myParser DBMS_XMLPARSER.Parser;
v_feedDoc DBMS_XMLDOM.DomDocument;

v_rootElementTagName VARCHAR2(7);
-- v_feedVersion VARCHAR2(40);
v_feedSourceClob CLOB;
v_nsAttrXmlNameSpaces VARCHAR2(32767);

--========== Internal PROCEDUREs/FUNCTIONs ===================================
FUNCTION RFC3339_DateStrToTimeStampLTZ(
i_dateTimeString IN VARCHAR2
)
RETURN TIMESTAMP WITH LOCAL TIME ZONE
AS
C_NLS_DATE_LANGUAGE CONSTANT VARCHAR2(40) := 'NLS_DATE_LANGUAGE=AMERICAN';
v_tempTimeStampTz TIMESTAMP WITH LOCAL TIME ZONE := NULL;
v_dateTimeString VARCHAR2(50) := NULL;
v_timeStampTzFormat VARCHAR2(40) := NULL;
BEGIN
v_dateTimeString := REGEXP_REPLACE(
REGEXP_REPLACE(
UPPER(i_dateTimeString),
'T', NULL, 1, 1
),
'Z$', 'UTC'
);

IF v_dateTimeString IS NULL THEN
RETURN NULL;
END IF;


v_timeStampTzFormat := 'RRRR-MM-DD';

IF LENGTH(v_dateTimeString) >= 10 THEN

IF REGEXP_INSTR(v_dateTimeString , '([0-9]{2}:){2}[0-9]{2}¥.?') >= 1 THEN
v_timeStampTzFormat := v_timeStampTzFormat || 'HH24:MI:SSXFF';
END IF;

IF REGEXP_INSTR(v_dateTimeString, '(¥+|¥-)[0-9]{2}:[0-9]{2}$') >= 1 THEN
v_timeStampTzFormat := v_timeStampTzFormat || 'TZH:TZM';
ELSIF REGEXP_INSTR(v_dateTimeString, 'UTC$') >= 1 THEN
v_timeStampTzFormat := v_timeStampTzFormat || 'TZR';
END IF;
END IF;

v_tempTimeStampTz := TO_TIMESTAMP_TZ(
v_dateTimeString,
v_timeStampTzFormat,
c_nls_date_language
);

RETURN v_tempTimeStampTz;

EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(
-20002,
'RFC3339_DateStrToTimeStampLTZ():' || SQLERRM()
);
RETURN NULL;
END RFC3339_DateStrToTimeStampLTZ;


FUNCTION RFC822_DateStrToTimeStampLTZ
(
i_dateTimeString IN VARCHAR2
)
RETURN TIMESTAMP WITH LOCAL TIME ZONE
AS
C_NLS_DATE_LANGUAGE CONSTANT VARCHAR2(40) := 'NLS_DATE_LANGUAGE=AMERICAN';
v_tempTimeStampTz TIMESTAMP WITH LOCAL TIME ZONE := NULL;
v_dateTimeString VARCHAR2(50) := NULL;
v_timeStampTzFormat VARCHAR2(40) := NULL;
BEGIN
v_dateTimeString := UPPER(i_dateTimeString);
IF v_dateTimeString IS NULL THEN
RETURN NULL;
END IF;

IF REGEXP_INSTR(v_dateTimeString, '^[A-Z]{3}¥, ') >= 1 THEN
v_timeStampTzFormat := v_timeStampTzFormat || 'DY, ';
END IF;

v_timeStampTzFormat := v_timeStampTzFormat || 'DD MON RRRR';
IF REGEXP_INSTR(v_dateTimeString, '[0-9]{2}:[0-9]{2}:[0-9]{2}') >= 1 THEN
v_timeStampTzFormat := v_timeStampTzFormat || 'HH24:MI:SS ';
ELSIF REGEXP_INSTR(v_dateTimeString, '[0-9]{2}:[0-9]{2}') >= 1 THEN
v_timeStampTzFormat := v_timeStampTzFormat || 'HH24:MI ';
END IF;

IF REGEXP_INSTR(v_dateTimeString, ' (¥+|¥-)[0-9]{4}$') >= 1 THEN
v_timeStampTzFormat := v_timeStampTzFormat || 'TZHTZM';
ELSIF REGEXP_INSTR(v_dateTimeString, ':[0-9]{2}$') = 0
AND REGEXP_INSTR(v_dateTImeString, '[0-9]{2} [A-Z]{3} [0-9]{2,4}$') = 0
AND REGEXP_INSTR(v_dateTImeString, ' [A-Z]{1,3}$') >= 1 THEN
v_timeStampTzFormat := v_timeStampTzFormat || 'TZR';
END IF;

v_tempTimeStampTz := TO_TIMESTAMP_TZ(
v_dateTimeString,
v_timeStampTzFormat,
c_nls_date_language
);

RETURN v_tempTimeStampTz;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(
-20001,
'RFC822_DateStrToTimeStampLTZ():' || SQLERRM()
);
RETURN NULL;
END RFC822_DateStrToTimeStampLTZ;


PROCEDURE getFeedSource(
i_feedXmlUrl IN VARCHAR2,
i_feedXmlCharset IN VARCHAR2 DEFAULT 'UTF-8',
io_feedSourceClob IN OUT NOCOPY CLOB
)
IS
v_httpReq UTL_HTTP.REQ;
v_httpResp UTL_HTTP.RESP;
v_feedSource VARCHAR2(1024);
BEGIN
v_httpReq := UTL_HTTP.BEGIN_REQUEST(i_feedXmlUrl);
UTL_HTTP.SET_HEADER(
v_httpReq,
'User-Agent',
'Oracle UTL_HTTP/Oracle10g R1;'
);

UTL_HTTP.SET_HEADER(
v_httpReq,
'Content-Type',
'text/xml;charset='||i_feedXmlCharset
);

v_httpResp := UTL_HTTP.GET_RESPONSE(v_httpReq);
DBMS_LOB.CREATETEMPORARY(io_feedSourceClob, FALSE);
BEGIN
LOOP
UTL_HTTP.READ_LINE(v_httpResp, v_feedSource, true);
v_feedSource := v_feedSource || UTL_TCP.CRLF;
DBMS_LOB.WRITEAPPEND(
io_feedSourceClob,
LENGTH(v_feedSource),
v_feedSource
);
END LOOP;
EXCEPTION
WHEN UTL_HTTP.END_OF_BODY THEN
UTL_HTTP.END_RESPONSE(v_httpResp);
END;
END getFeedSource;


PROCEDURE getNameSpaces(
i_feedType IN VARCHAR2,
i_feedDoc IN DBMS_XMLDOM.DomDocument,
io_feedXmlNameSpaces IN OUT NOCOPY VARCHAR2
)
IS
v_attrTagName VARCHAR2(32767);
v_feedNodelist DBMS_XMLDOM.DomNodeList;
v_nsAttrNamedNodeMap DBMS_XMLDOM.DomNamedNodeMap;
BEGIN

CASE i_feedType
WHEN C_RSS THEN
v_feedNodeList := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(i_feedDoc, C_RSS);

WHEN C_RDF THEN
-- name spaceが影響しているのだと思われるが上手い解決方法が
-- 見つからなかったので、全要素を取得している。
v_feedNodeList := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(i_feedDoc, '*');

WHEN C_ATOM THEN
v_feedNodeList := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(i_feedDoc, C_ATOM);

END CASE;

v_nsAttrNamedNodeMap
:= DBMS_XMLDOM.GETATTRIBUTES(DBMS_XMLDOM.ITEM(v_feedNodeList, 0));

FOR i IN 0..DBMS_XMLDOM.GETLENGTH(v_nsAttrNamedNodeMap)-1 LOOP
v_attrTagName
:= DBMS_XMLDOM.GETNODENAME(DBMS_XMLDOM.ITEM(v_nsAttrNamedNodeMap, i));

IF REGEXP_INSTR(v_attrTagName, '^xmlns') = 1 THEN
io_feedXmlNameSpaces
:= io_feedXmlNameSpaces
|| v_attrTagName || '="'
|| DBMS_XMLDOM.GETNODEVALUE(
DBMS_XMLDOM.ITEM(v_nsAttrNamedNodeMap, i))
|| '" ';
END IF;
END LOOP;
END getNameSpaces;


PROCEDURE getFeedEntries(
i_feedType IN VARCHAR2,
i_feedDoc IN DBMS_XMLDOM.DomDocument,
i_feedXmlNameSpaces IN VARCHAR2,
o_feedTitle OUT NOCOPY VARCHAR2,
o_feedUrl OUT NOCOPY VARCHAR2,
o_feedEntryList OUT NOCOPY DBMS_XMLDOM.DomNodeList
)
IS
v_feedSourceXml XMLTYPE;
BEGIN
v_feedSourceXml := DBMS_XMLDOM.GETXMLTYPE(i_feedDoc);
CASE i_feedType
WHEN C_RSS THEN
o_feedEntryList := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(i_feedDoc, 'item');
o_feedTitle := XMLTYPE.EXTRACT(
v_feedSourceXml,
'/rss/channel/title/text()',
i_feedXmlNameSpaces
).GETSTRINGVAL();
o_feedUrl := XMLTYPE.EXTRACT(
v_feedSourceXml,
'/rss/channel/link/text()',
i_feedXmlNameSpaces
).GETSTRINGVAL();

WHEN C_RDF THEN
o_feedEntryList := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(i_feedDoc, 'item');
o_feedTitle := XMLTYPE.EXTRACT(
v_feedSourceXml,
'/rdf:RDF/channel/title/text()',
i_feedXmlNameSpaces
).GETSTRINGVAL();
o_feedUrl := XMLTYPE.EXTRACT(
v_feedSourceXml,
'/rdf:RDF/channel/link/text()',
i_feedXmlNameSpaces
).GETSTRINGVAL();

WHEN C_ATOM THEN
o_feedEntryList := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(i_feedDoc, 'entry');
o_feedTitle := XMLTYPE.EXTRACT(
v_feedSourceXml,
'/feed/title/text()',
i_feedXmlNameSpaces
).GETSTRINGVAL();
o_feedUrl := XMLTYPE.EXTRACT(
v_feedSourceXml,
'/feed/link[@type="text/html"]/@href',
i_feedXmlNameSpaces
).GETSTRINGVAL();

END CASE;
END getFeedEntries;


PROCEDURE drawFeedEntry(
i_feedEntry IN FeedEntryType
)
IS
BEGIN
HTP.TABLEROWOPEN();
HTP.TABLEDATA(
'<a href="'
|| i_feedEntry.link
|| '" style="color:#FF0000" target="_blank">'
|| i_feedEntry.title || ' -- 続きを読む... '
|| '</a>' || TO_CHAR(i_feedEntry.published,'yyyy-mm-dd hh24:mi')

);
HTP.TABLEROWCLOSE();
END drawFeedEntry;


PROCEDURE drawFeedEntries(
i_feedType IN VARCHAR2,
i_feedTitle IN VARCHAR2,
i_feedUrl IN VARCHAR2,
i_feedEntryList IN DBMS_XMLDOM.DomNodeList
)
IS
v_feedEntry FeedEntryType;
v_emptyFeedEntry FeedEntryType;
v_itemNode DBMS_XMLDOM.DomNode;
v_childnode DBMS_XMLDOM.DomNode;
v_feedItemFields DBMS_XMLDOM.DomNodeList;
v_attrNamedNodeMap DBMS_XMLDOM.DomNamedNodeMap;
v_childNodeText VARCHAR2(32767);
BEGIN
HTP.TABLEOPEN();
HTP.TABLEROWOPEN();
HTP.TABLEHEADER(
'<a href="'
|| i_feedUrl
|| '" style="color:#000000" target="_blank">'
|| i_feedTitle
|| '</a>'
|| ' - ' || dbms_xmldom.getlength(i_feedEntryList)|| ' articles.'
);
HTP.TABLEROWCLOSE();

v_feedEntry := v_emptyFeedEntry;
FOR i IN 1..DBMS_XMLDOM.GETLENGTH(i_feedEntryList) LOOP
v_itemNode := DBMS_XMLDOM.ITEM(i_feedEntryList, i-1);
v_feedItemFields := DBMS_XMLDOM.GETCHILDNODES(v_itemNode);

FOR j IN 1..DBMS_XMLDOM.GETLENGTH(v_feedItemFields) LOOP
v_childnode := DBMS_XMLDOM.ITEM(v_feedItemFields, j-1);
v_childNodeText := DBMS_XMLDOM.GETNODEVALUE(
DBMS_XMLDOM.GETFIRSTCHILD(v_childnode)
);

CASE DBMS_XMLDOM.GETNODENAME(v_childnode)

WHEN 'title' THEN
v_feedEntry.title := v_childNodeText;


WHEN 'link' THEN
IF i_feedType = C_ATOM THEN
-- ATOM
v_attrNamedNodeMap := DBMS_XMLDOM.GETATTRIBUTES(v_childnode);
IF DBMS_XMLDOM.GETNODEVALUE(
DBMS_XMLDOM.GETNAMEDITEM(v_attrNamedNodeMap, 'type')
) = 'text/html'
THEN
v_feedEntry.link :=
DBMS_XMLDOM.GETNODEVALUE(
DBMS_XMLDOM.GETNAMEDITEM(v_attrNamedNodeMap, 'href')
);
END IF;

ELSE
-- RSS/RDF
v_feedEntry.link := v_childNodeText;
END IF;


-- RSS 0.9x and RSS 2.0
WHEN 'pubDate' THEN
v_feedEntry.published
:= RFC822_DateStrToTimestampLTZ(v_childNodeText);

-- ATOM 1.0
WHEN 'published' THEN
v_feedEntry.published
:= RFC3339_DateStrToTimestampLTZ(v_childNodeText);

-- RSS/RDF 1.0 , RSS 2.0
WHEN 'dc:date' THEN
v_feedEntry.published
:= RFC3339_DateStrToTimestampLTZ(v_childNodeText);

-- ATOM 0.3
WHEN 'issued' THEN
v_feedEntry.published
:= RFC3339_DateStrToTimestampLTZ(v_childNodeText);

ELSE
NULL; -- nop
END CASE;
END LOOP;

drawFeedEntry(v_feedEntry);
END LOOP;
HTP.TABLECLOSE();
END drawFeedEntries;
--
--
--****************************************************************************
-- Main
--****************************************************************************
BEGIN

v_feedXmlUrl := i_feedXmlUrl;
IF v_feedXmlUrl IS NULL THEN
RAISE_APPLICATION_ERROR(-20003, 'FEEDのURLを指定してください。');
END IF;


getFeedSource(
i_feedXmlUrl => v_feedXmlUrl,
io_feedSourceClob => v_feedSourceClob
);

v_myParser := DBMS_XMLPARSER.NEWPARSER();
DBMS_XMLPARSER.PARSECLOB(v_myParser, v_feedSourceClob);
v_feedDoc := DBMS_XMLPARSER.GETDOCUMENT(v_myParser);

v_rootElementTagName
:= DBMS_XMLDOM.GETTAGNAME(DBMS_XMLDOM.GETDOCUMENTELEMENT(v_feedDoc));

-- v_feedVersion
-- := DBMS_XMLDOM.GETVALUE(
-- DBMS_XMLDOM.GETATTRIBUTENODE(
-- DBMS_XMLDOM.GETDOCUMENTELEMENT(v_feedDoc),
-- C_ATTR_NAME_VERSION
-- )
-- );

getNameSpaces(
i_feedType => v_rootElementTagname,
i_feedDoc => v_feedDoc,
io_feedXmlNameSpaces => v_nsAttrXmlNameSpaces
);

getFeedEntries(
i_feedType => v_rootElementTagname,
i_feedDoc => v_feedDoc,
i_feedXmlNameSpaces => v_nsAttrXmlNameSpaces,
o_feedTitle => v_feedTitle,
o_feedUrl => v_feedUrl,
o_feedEntryList => v_feedEntryList
);

drawFeedEntries(
i_feedType => v_rootElementTagName,
i_feedTitle => v_feedTitle,
i_feedUrl => v_feedUrl,
i_feedEntryList => v_feedEntryList
);

DBMS_LOB.FREETEMPORARY(v_feedSourceClob);
DBMS_XMLDOM.FREEDOCUMENT(v_feedDoc);
DBMS_XMLPARSER.FREEPARSER(v_myParser);

EXCEPTION
WHEN OTHERS THEN
IF v_feedSourceClob IS NOT NULL THEN
DBMS_LOB.FREETEMPORARY(v_feedSourceClob);
END IF;
DBMS_XMLDOM.FREEDOCUMENT(v_feedDoc);
DBMS_XMLPARSER.FREEPARSER(v_myParser);
HTP.TABLEOPEN();
HTP.TABLEROWOPEN();
HTP.TABLEHEADER('RSS Reader error:'||SQLERRM());
HTP.TABLEROWCLOSE();
HTP.TABLECLOSE();
END RSS_READER;
/
show errors
/




まだまだ、早いか?! などと思っていると、あっという間に、クリスマスモードに突入しちゃうんですよね!。
聞いている曲:Take 6 - We wish you a merry christmas

| | コメント (0) | トラックバック (0)

2006年10月29日 (日)

Mac De PL/SQL RSS Reader #26

RSS Readerの続き。APEX 2.0に組み込んだRss Readerのレイアウトを変えてみた 

Hide and Show リージョンを3行2列にレイアウトしてみた。設定はこんな感じ。
Img7 Img6 

リージョンに埋め込んだコードはこんな感じ。PL/SQLブロックしか実行できないので、beginブロック内でrss_readerプロシージャを呼び出している。
Img8


実行するとこうなる。Hide and Showリージョンなのでリージョンを折り畳む事ができる。
Img2_1 Img3_1 Img4 Img5

ひとまず、こんなところで。。

| | コメント (0) | トラックバック (0)

2006年10月 4日 (水)

Mac De PL/SQL RSS Reader #9

前回の続き。

feedフォーマットは、RSS 0.91, 0.92, 2.0と、RSS 0.9, 1.0 それに、ATOM 0.3, 1.0があるが、それらを区別するにはどうするのがいいのか?

各フォーマット共通の要素があり、属性として、フォーマット名とバージョンの文字列が取得できるようになっていれば話は簡単なのだが、そのような要素は存在しない。

ということで、やはり、素直に、各feedのルート要素名で区別するのが無難か? と思うようになる。。。

・<rss>ならば、
 Rich Site Summary(RSS 0.9x)とReally Simple Syndication(RSS 2.0)

・<rdf:RDF>ならば
 RDF Site Summary(RSS 0.9とRSS 1.0)

・<feed>ならば
 Atom Syndication Format (ちなみに、私が購読しているBlogには、version = 0.3 と 1.0のサイトがある)

さらに、細かな区別が必要であれば、各要素のversion属性値でより細かな区別を行う。

という手順を踏めば、なんとかなる、かな。。。


ちなみに、XSLT(PL/SQLだとDBMS_XSLPROCESSORパッケージを利用する)で変換する方法もあるが、今後のお楽しみのために残しておき、今回は、DBMS_XMLDOMパッケージ利用し、DOMプログラミングだけで作ろうと考えている。尚、一から作るのではなく、以前作成したRSS 0.91に対応したものを改造し、複数のfeedフォーマットに対応させる予定。


聞いている曲:DVDのほうがいいけどね。。

今年で、18周年を迎える、Blue Note Tokyo。送られてきた案内を見ると、、おや、6年降りの登場なんですね、NIACIN。
しかも、10/22の1日限り。慌てて、予約状況を見るも。。。。すでに満席。残念!!!

ということで、昔のアルバムでも。。。あれ〜、iTMSには、NIACINは無いのね! これまた残念といことで、Amazonにリンク張りま〜す。
BILLY SHEEHAN

 

| | コメント (0) | トラックバック (0)

2006年10月 3日 (火)

Mac De PL/SQL RSS Reader #8

Mac De PL/SQL RSS Reader #7の続き

さて、SafariのFeed Reader機能だけで配信される記事を読んでいる場合には全く意識していないのだが、いざ、自作となると面倒だと感じるところがある。 
その一つは、やはり、feedフォーマットが複数ある点だろうか。しかもそのフォーマット毎に複数のバージョンが存在する。

二つ目は、日付、時刻のフォーマット。rfc822または、rfc3339のいずれか利用されている点だ。

各feedのspecを斜め読みし、記事の公開日に対応する要素について調べてみると、

RSS 0.91のpubDate要素はrfc822
 但し、pubDate要素は、option要素なので存在しない場合もある。

RSS 1.0dc:date要素は、rfc3339

RSS 0.92 and 2.0pubDate要素も、rfc822
 但し、pubDate要素は、option要素なので存在しない場合もある。
 また、pubDate要素を利用せず、dc:date要素で拡張している場合もあようで、形式は、rfc3339となる。

ATOMのpublished要素は、rfc3339。参照、rfc4287 3.3 Date Constructs


私が作ろうとしているRSS Feed Readerは、ブログタイトル、記事のタイトルとURL、それに公開日時だけという単純ものなのだが、いろいろと調べなければならない。。。
間違いなく忘れそうなので備忘録として残しておく。。調べるだけでも疲れる。。。。。。


2006/10/4 追記、ATOM version="0.3"を使っている場合には、published要素ではなく、issued要素が利用され、rfc3339準拠。 ほんとに面倒ね。
David Sanbornは、今年の暮れも Blue Note Tokyoに来るようですね。

聞いている曲:
宇多田ヒカル - First Love (Featuring David Sanborn) 宇多田ヒカル & David Sanborn - First Love - EP - First Love (Featuring David Sanborn)
宇多田ヒカル & David Sanborn - First Love - EP - First Love (Featuring David Sanborn)

David Sanborn - Closer David Sanborn - Closer - Enchantment
David Sanborn - Closer - Enchantment

| | コメント (0) | トラックバック (0)

2006年9月28日 (木)

Mac De PL/SQL RSS Reader #7

さて、RSS ReaderをネタにDBMS_XMLDOMパッケージなどでも遊ぼうとしていたら、こんなの見つけた。


Oracle10g R1/R2の PL/SQL Package and Type ReferenceマニュアルによればDBMS_XMLDOM.HASATTRIBUTEファンクションの戻り値は、VARCHAR2となっている。(以下、マニュアルより抜粋)
HASATTRIBUTE Functions


DBMS_XMLDOM.HASATTRIBUTE(
elem IN DOMELEMENT,
name IN VARCHAR2)
RETURN VARCHAR2;

DBMS_XMLDOM.HASATTRIBUTE(
elem IN DOMELEMENT,
name IN VARCHAR2,
ns IN VARCHAR2)
RETURN VARCHAR2;


しかし、実際には、

SYS> spo xmldom_desc.log
SYS> desc dbms_xmldom

中略

SYS> spo off
SYS> !cat xmldom_desc.log | grep HASATTRIBUTE
FUNCTION HASATTRIBUTE RETURNS BOOLEAN
FUNCTION HASATTRIBUTE RETURNS BOOLEAN
FUNCTION HASATTRIBUTES RETURNS BOOLEAN
SYS>

ということで、DBMS_XMLDOM.HASATTRIBUTEファンクションの戻り値は、 BOOLEAN なので注意するべし。

さらに、DBMS_XMLDOM.HASATTRIBUTE()を使ってみると、Oracle10g 10.1.0.3.0, 10.2.0.2.0、それぞれで試してみたが、常に FALSE が返される。

ちなみに、DBMS_XMLDOM.GETATTRIBUTENODE()では、指定した属性ノードが正しく取り出せた。こちらが使えるので、とりあえず、なんとかなるか。。。

今後仕事で使う際には要注意なので、備忘録として記録しておく。(そのうちファンクションの問題共々、修正されるとは思うが。。。。)



聞いている曲:Japan - Gentoemen Take Polaroids - Taking Islands in Africa Japan - Gentlemen Take Polaroids - Taking Islands In Africa
Japan - Gentlemen Take Polaroids - Taking Islands In Africa

| | コメント (0) | トラックバック (0)

2006年9月 3日 (日)

Mac de APEX! (formerly called HTML DB) #4

つづきです。
HTML DB 2.0からAPEX 2.2へのアップグレードは完了したので、PL/SQL で RSS FEED Readerで作ったコードを動かしてみる。

megawattさんの「メガ放談」のRSS 0.91を読み込み、記事のリンクをリストする。
Apex010

クリックすると、ブログが別ページで開かれる。
Apex011

HTML DB 2.0の時と変わりない。


聞いている曲:
Wikipedia - Mick Karn
Wikipedia(jp) - Japan
Wikipedia(en) - Japan


Mick Karn - Love's Glove(EP) Mick Karn - Love's Glove - EP
Mick Karn - Love's Glove - EP

Mick Karn - Of & About(EP) Mick Karn - Of & About - EP - All You Have
Mick Karn - Of & About - EP

| | コメント (0) | トラックバック (0)

2006年9月 2日 (土)

Mac de APEX! (formerly called HTML DB) #3

続きです。APEXのインストール残すところ後僅か。

5)日本語環境のインストール

先にインストール(アップグレード)したのは、英語版なので、日本語環境のインストールを行う。手順は「Installation Guide]の「4.5 Installing Oracle Application Express in Other Languages」に記載されている。

注意)環境変数 NLS_LANG を AL32UTF8 にする必要がある。また、Terminalのエンコーディングも一時的に UTF8に変更しておく必要があるので注意すること。

まず、TerminalのエンコーディングをUTF8に変更(インストール時のみ一時的に変更するだけなので「デフォルトに設定」する必要ない)

変更前(SJIS)変更後(UTF8)
Encodeing_bEncodeing_a
pb17:/Volumes/WorkVol/temp/apex oracle$ echo $NLS_LANG
japanese_japan.JA16SJISTILDE
pb17:/Volumes/WorkVol/temp/apex oracle$ export NLS_LANG=japanese_japan.AL32UTF8
pb17:/Volumes/WorkVol/temp/apex oracle$ echo $NLS_LANG
japanese_japan.AL32UTF8

pb17:/Volumes/WorkVol/temp/apex oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 土 9月 2 11:00:24 2006

Copyright (c) 1982, 2004, Oracle. All rights reserved.

> conn / as sysdba
接続されました。
SYS> alter session set current_schema = flows_020200;

セッションが変更されました。

SYS>
SYS> !pwd
/Volumes/WorkVol/temp/apex

SYS> spo load_ja.log
SYS> @builder/ja/load_ja.sql
. ____ ____ ____ ____
. / \ | \ /\ / | /
.| || / / \ | | |
.| ||--- ---- | | |--
.| || \ / \ | | |
. \____/ | \/ \ \____ |____ \____
.
. HTML DB Hosted Development Service Installation.
.........................................................

PL/SQLプロシージャが正常に完了しました。

Install HTML DB applications

PL/SQLプロシージャが正常に完了しました。

APPLICATION 4420 - APEX - System Messages
Set Credentials...
Check Compatibility...
API Last Extended:20060224
Your Current Version:20060224
This import is compatible with version: 20050501
COMPATIBLE (You should be able to run this import without issues.)
中略
...PAGE .4009: ページ0(ゼロ)
...PAGE 1.4009: アプリケーション・ビルダー
...PAGE 2.4009: サポートするオブジェクト
...PAGE 3.4009: ブレッドクラム・エントリ
...PAGE 4.4009: マスター表の定義
...PAGE 5.4009: ディテール表を定義
中略
...done
Adjust instance settings

PL/SQLプロシージャが正常に完了しました。

SYS> spo off
現在はスプールしていません。
SYS>

6)JOB_QUEUE_PROCESSESの管理

前もって確認済みであるので、特に行うことはないのだが、値だけは確認しておこう。「Installation Guide」の「4.6 Managing JOB_QUEUE_PROCESSES」に記載されている。

SYS> show parameter job_queue_processes         

NAME TYPE          VALUE
----------------------- ------------------- --------------
job_queue_processes integer 20
SYS> exit
pb17:/Volumes/WorkVol/temp/apex oracle$

これで、APEX 2.2のへのアップグレードは終了である。早速、アクセスしてみる。URLは変更していない。また、ブラウザは、「Installation Guide」の「2.6 Browser Requirement」には記載されていない Safari 2.0.4を利用した。(今のところ特に不都合はないようだ。)
Apex003_1

さて、次回は、以前作成した、RSS FEED Readerが動作するか試してみる予定。




そういえば、放置状態にあった HTML DBで家系図アプリっていうネタを思い出した(完全に忘れていた。。。)のだが、親や叔父に聞いても、父方、母方でも3代程度、遡ることがやっと。(まぁ、家系図が代々引き継がれている訳でもないので、その程度なのでしょう。)でも自分の苗字由来や、氏名(ウジナ)は? など先日のテレビ番組の影響で、いろいろと調べたくなってきた。「明治8年の苗字必証称令」で、その時の雰囲気?で、適当に付けられてしまった可能性もあるので 新訂 寛政重修諸系譜 に記載されている家に繋がっているともいないとも、なんとも言えないが。。 

ということで、自分の苗字の原点を見つけてみようかな。。と、今読んでいる本。
 

それから、図書館で見つけた 新訂 寛政重修諸系譜。 これにも家譜が書かれていたので読んでみたり。

Wikipediaも参考に辿っていくと、確かに私の父方の苗字がある。ただ、その先は Wikipediaにも、 新訂 寛政重修諸系譜書かれていない。ま派生が多過ぎるということなのか。。。 そんなことで、いろいろ話していたら、妻は「平」氏系列という話もあり(私の方も含めて、全くの未確認なので聞き流してくださいね。おもしろがって調べてるだけですから。。)。  
え〜〜〜〜〜。 「源平」ですかい。。。。。。。

と、自分のルーツを辿るということで、思い出したのが(まぁ、自分のルーツを探す繋がりということで)、このテレビドラマ。
これが放送された影響で、クラスには、必ず一人、”クンタ”というニックネームを付けられるヤツがいた。(笑)

| | コメント (0) | トラックバック (0)

2006年9月 1日 (金)

Mac de APEX! (formerly called HTML DB) #2

US Oracleが、OPEN APEXというサイトを立ち上げたようです。しかもこのサイト自体がAPEXで構築されているようです。

http://apex.oracle.com/
と入力するともうそこは、APEX world! マルチリンガル対応しているようで、日本からのアクセスも快適です。


では、前回の続き。

4)APEX 2.2インストール後の作業

4−1) PL/SQLパッケージのリコンパイル

移行後の作業も付属ドキュメントに丁寧に記載されているのでその通りに行えば問題ないだろう。「Installation Guide」の「4.1 Recompiling Invalid PL/SQL Packages and Restarting Processes」を行う。タイトルからもわかるように、statusが INVALID になった PL/SQLパッケージをリコンパイルするだけの作業だ。

pb17:/Volumes/WorkVol/temp/apex oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 金 9月 01 21:14:09 2006

Copyright (c) 1982, 2004, Oracle. All rights reserved.

> conn / as sysdba
接続されました。
SYS> spo utlrp.log
SYS> @?/rdbms/admin/utlrp.sql

TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN 2006-09-01 21:15:44


PL/SQLプロシージャが正常に完了しました。


TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_END 2006-09-01 21:16:43


PL/SQLプロシージャが正常に完了しました。


PL/SQLプロシージャが正常に完了しました。
SYS> spo of
SYS> spo off


4−2)画像ファイルのコピー

「Installation Guilde」の「4.2 Copying the Images Directory」に記載されている作業である。簡単なので解説はしない。
尚、独自の環境変数 $ORACLE_HTMLDB_HOMEには、操作を簡単にするため、HTML DB(アップグレードしたので、APEX)のホームディレクトリを設定してある。

pb17:˜ oracle$ cd $ORACLE_HTMLDB_HOME/Apache/modplsql/conf
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$ pwd
/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf

Oracle HTTP Serverを利用していので、marvel.conf で イメージディレクトリのマッピングを確認し、HTML DB 2.0用のディレクトリを念のためにリネームしておく。リーネム後に、APEX 2.2のイメージディレクトリをコピーすれば、OK。
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$ cat marvel.conf | grep ¥/i¥/
Alias /i/ "/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel/images/"

pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$ cd /Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel

pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ ls -l
total 1136
中略
drwxr-xr-x 998 oracle oinstall 33932 Aug 30 21:29 images
中略
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ mv images images_2_0
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ ll
total 1136
中略
drwxr-xr-x 998 oracle oinstall 33932 Aug 30 21:29 images_2_0
中略
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ cd /Volumes/WorkVol/temp/apex
pb17:/Volumes/WorkVol/temp/apex oracle$ cp -rf images $ORACLE_HTMLDB_HOME/marvel
pb17:/Volumes/WorkVol/temp/apex oracle$
pb17:/Volumes/WorkVol/temp/apex oracle$ cd $ORACLE_HTMLDB_HOME/marvel
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$ ll
total 1136
中略
drwxr-xr-x 876 oracle oinstall 29784 Seq 01 21:26 images
drwxr-xr-x 998 oracle oinstall 33932 Aug 39 21:29 images_2_0
中略
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel oracle$


次に、「Installation Guide」の「4.3 Configuring Oracle HTTP Server When Upgrading」、「4.3.2 Configuring Oracle HTTP Server 10g or Oracle Application Server 10g When Upgrading」を行う。Oracle HTTP Server 10g をインストールしてあるので、マニュアルに従い、marvel.confのPlsqlNLSLanguageを変更する。HTML DB 2.0までは、データベースキャラクタセットに合わせておけばよかったため、私の環境では、データベースキャラクタセットである、JA16SJISTILDE に設定していた。APEX2.2では、データベースキャラクタセットに関係なく、必ず、AL32UTF8 に設定する必要がある。

pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB oracle$ cd $ORACLE_HTMLDB_HOME/Apache/modplsql/conf
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$ cp marvel.conf marvel.conf.20
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$ vi marvel.conf
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$ diff marvel.conf.20 marvel.conf
15c15
< PlsqlNLSLanguage JAPANESE_JAPAN.JA16SJISTILDE
---
> PlsqlNLSLanguage JAPANESE_JAPAN.AL32UTF8
pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$

Oracle HTTP Server 10gの起動するコマンドを、.bash_profile に alias 定義してあるので以下のようにして停止、起動している。
マニュアルには、Oracle HTTP Server 10gの起動、停止は、opmnctl を利用すると書かれているが、MacOSX版のCompanion CDからインストールした Oracle HTTP Server 10gには、opmnctl が存在しない(無理矢理インストールしているからか??)ので、Oracle HTTP Server 9.0.3のころと同じく、apachectl で起動している。この点に関しては、マニュアルに記載されている操作と、ここで行っている操作が異なっているので注意。

pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$ stophtmldb
/Volumes/WorkVol/u01/app/oracle/product/10.1.0/tiger/../htmlDB/Apache/Apache/bin/apachectl start: httpd stopped

pb17:/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/Apache/modplsql/conf oracle$ starthtmldb
/Volumes/WorkVol/u01/app/oracle/product/10.1.0/tiger/../htmlDB/Apache/Apache/bin/apachectl start: httpd started


今日はここまで。次回は、APEXの日本語関連リソースをインストールする。


聞いている曲: 9月といえば。。。
Earth Wind & Fire : September

| | コメント (0) | トラックバック (0)

2006年8月31日 (木)

Mac de APEX! (formerly called HTML DB) #1

Oracle HTML DBが、改名され、Oracle Application Express 2.2 としてリリースされたようだ。
2006年8月31日現在、日本オラクルではアナウンスだけで、まだダウンロードできないのだが、本国のOTNでは、ダウンロードできるようになっていたので、早速、試してみる事にする。
新規インストールでは面白くないので、HTML DB 2.0から APEX 2.2 へのアップグレードを試してみることにする。

最初に、APEX 2.2のダウンロードから。

今回は、PowerBook G4 MacOSX 10.4.7 を使った。構築手順は以前の記録を参考にしてほしい。また、2006年8月現在、MacOSX Tigerに正式対応したOracle10g はリリースされていない。この手順に従い、Oracle10g R1 EE for MacOSX Serverと、Oracle HTTP Server 10g及び、HTML DB 2.0をインストールした。 Oracle Application Express 2.2 (APEX 2.2)の前提条件はクリアしているはずだが、念のために初期化パラメータなど、少々確認しておく。


尚、APEX2.2のインストール手順は、apex_2.2.zipにも付属するドキュメントに記述されている通りに行う。マニュアルが間違っていなければ、もしくは、バグに遭遇しなければ、ドキュメントに従い進めることにする。(HTML DB 1.5からHTML DB 2.0 へのアップグレードとほぼ同じのようなので問題になることはないだろう。しっかり、マニュアル読んで行えば問題ない!。。はず。)


前提条件は、付属するドキュメント「Installation Guide」 の 「2 Oracle Application Express Installation Requirements」に記載されているのでここでは特に解説はしない。

1)shared_pool_size初期化パラメータ

私の環境では自動設定され、現時点では80MBにされている。最低でも100MBになるように shared_pool_sizeパラメータを変更する。
(sga_targetパラメータはそのままで、shared_pool_sizeパラメータの最小値を設定し、あとの調整はOracleに任せる。)

pb17:˜ oracle$ sqlplus /nolog

> conn / as sysdba
接続されました。
SYS> show parameter shared_pool_size

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
__shared_pool_size big integer 80M
shared_pool_size big integer 0
SYS> show parameter target

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
pga_aggregate_target big integer 92M
sga_target big integer 280M
SYS>


SYS> select * from v$sgainfo;

NAME BYTES RES
-------------------------------- ---------- ---
Fixed SGA Size 778888 No
Redo Buffers 262144 No
Buffer Cache Size 192937984 Yes
Shared Pool Size 83886080 Yes
Large Pool Size 4194304 Yes
Java Pool Size 8388608 Yes
Streams Pool Size 0 Yes
Granule Size 4194304 No
Maximum SGA Size 293601280 No
Startup overhead in Shared Pool 25165824 No
Free SGA Memory Available 0

11行が選択されました。

SYS> show parameter pfile

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /Volumes/WorkVol/u01/app/oracl
e/product/10.1.0/tiger/dbs/spf
iletiger.ora

SYS> alter system set shared_pool_size='100M' scope=both;

システムが変更されました。

SYS> select * from v$sgainfo;

NAME BYTES RES
-------------------------------- ---------- ---
Fixed SGA Size 778888 No
Redo Buffers 262144 No
Buffer Cache Size 171966464 Yes
Shared Pool Size 104857600 Yes
Large Pool Size 4194304 Yes
Java Pool Size 8388608 Yes
Streams Pool Size 0 Yes
Granule Size 4194304 No
Maximum SGA Size 293601280 No
Startup overhead in Shared Pool 25165824 No
Free SGA Memory Available 0

11行が選択されました。

上記以外の前提条件はすべてクリアしていたので、先へ進む。


2)ダウンロードした apex_2.2.zipの解凍

ダウンロードした apex_2.2.zipを解凍すると以下のように展開される。(Terminalからunzipコマンドで解凍するのもよいが、MacOSXではダブルクリックでの解凍も可能だ。好きな方法で解凍すればよいだろう)

pb17:/Volumes/WorkVol/temp/apex oracle$ ll
total 224
-r--r--r-- 1 oracle oinstall 9481 Jul 24 12:59 apex_epg_config.sql
-r--r--r-- 1 oracle oinstall 3537 Jul 11 11:53 apexins.sql
-r--r--r-- 1 oracle oinstall 6698 Jul 18 15:12 apexvalidate.sql
drwxr-xr-x 20 oracle oinstall 680 Jul 27 14:38 builder
drwxr-xr-x 394 oracle oinstall 13396 Jul 26 01:55 core
-r--r--r-- 1 oracle oinstall 81746 Jul 24 12:59 coreins.sql
drwxrwxr-x 10 oracle oinstall 340 Jul 24 16:00 doc
drwxr-xr-x 876 oracle oinstall 29784 Jul 24 14:32 images
-r--r--r-- 1 oracle oinstall 1078 May 23 06:32 load_trans.sql
drwxrwxr-x 3 oracle oinstall 102 Jul 24 16:01 patch
drwxr-xr-x 4 oracle oinstall 136 Jul 24 14:32 utilities
-rw-rw-rw- 1 oracle oinstall 3985 Jun 23 10:03 welcome.html
pb17:/Volumes/WorkVol/temp/apex oracle$

3)APEX 2.2のインストール

この例では、既に、HTML DB 2.0がインストールされているので、HTML DB 2.0からAPEX 2.2へのアップグレードを行うことになるのだが、実行するスクリプトは新規インストールと同じである。「Installation Guide」の「3.2 Installing the Oracle Application Express Software」の手順通りにAPEXのインストールスクリプトを実行する。

pb17:/Volumes/WorkVol/temp/apex oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 木 8月 31 21:03:10 2006

Copyright (c) 1982, 2004, Oracle. All rights reserved.

> conn / as sysdba
接続されました。
SYS>

SYS> @apexins apex_master SYSAUX SYSAUX TEMP /i/ NONE
. ____ ____ ____ ____
. / ¥ | ¥ /¥ / | /
.| || / / ¥ | | |
.| ||--- ---- | | |--
.| || ¥ / ¥ | | |
. ¥____/ | ¥/ ¥ ¥____ |____ ¥____
.
. Application Express Installation.
...................................

-----中略-----

Thank you for installing Oracle Application Express.

Oracle Application Express is installed in the FLOWS_020200 schema.

The structure of the link to the Application Express administration services is as follows:
http://host:port/pls/apex/apex_admin

The structure of the link to the Application Express development interface is as follows:
http://host:port/pls/apex

-- Now beginning upgrade. This will take several minutes.-------
-- Ensuring template names are unique -------
-- Migrating metadata to new schema -------
-- Switching builder to new schema -------
-- Migrating SQL Workshop metadata -------
-- Upgrading new schema. -------
-- Copying preferences to new schema. -------
Upgrade completed successfully no errors encountered.
-- Upgrade is complete -----------------------------------------
Upgradeのタイミング。
経過: 00:04:24.28
JOB_QUEUE_PROCESSES: 20
Completing registration process.
Validating installation.
Validate Installationのタイミング。
経過: 00:09:47.66
Complete Installationのタイミング。
経過: 01:27:15.85

とPowerBook G4 の 1Ghzでは多少時間がかかるが、問題なくHTML DB 2.0から、APEX 2.2へのアップグレードは終了する
。尚、HTML DB 1.5などからも直接アップグレードできる。


また、ログには、以下のエラーが記録されていたのだが、wwv_flow_upgrade_progress表が存在しないためなので問題はない。

drop   table wwv_flow_upgrade_progress
*
行1でエラーが発生しました。:
ORA-00942: 表またはビューが存在しません。


今日はここまで。

| | コメント (0) | トラックバック (0)

2006年8月14日 (月)

Mac De PL/SQL RSS Reader #6

つづきです。
PL/SQLで日本語対応RSS Readerが作れる事が確認できたので HTMLDB 2.0 に組み込み確認する。

Oracle HTMLDB 2.0で PL/SQL RSS Reader作成中のスナップショットをQuickTimeムービーにしました。
再生には、Apple QuickTimeプラグインが必要です。


サウンドトラックの無い、ファイルサイズ:2.3MB版のQuickTimeムービーはこちらから。



Apple iLifeのGarage Bandでサウンドトラックを付けたバージョン。ファイルサイズ:38MB版QuickTimeムービーはこちら。


聞いている曲:
David Bowie - TVC 15 David Bowie - Station to Station - TVC 15

| | コメント (0) | トラックバック (0)

2006年8月13日 (日)

Mac De PL/SQL RSS Reader #5

前回のつづきです。
当初のからmegawattさんのRSS 0.91フォーマットを対象にしているためその他のRSSフォーマットやATOMには対応していない。元ネタのようにXSLTスタイルシートを利用するのも良いだろう。
今回は、「元ネタの通りの方法で、日本語が文字化け無く処理できるのだろうか?」 という点を確認するということが目的であるため複数のRSSフォーマットに対応するつもりは無い。そのウチ試す予定だが。

ということで、最後に、今までほったらかしていた Oracle HTMLDB 2.0 を利用して RSS Reader を組み込んでみることにした。
Oracle HTMLDB 2.0については以前の記事を参考にして貰いたい。



HTMLDBに組み込んだコードはこれ。

DECLARE
TYPE rss_type IS RECORD
(
title VARCHAR2(2000),
link VARCHAR2(200)
);
v_rss_item rss_type;
v_rss_empty_item rss_type;

v_url VARCHAR2(32767)
:= 'http://megawatt.blogdns.net/blog/rdf91_xml';

v_myParser DBMS_XMLPARSER.Parser;
v_rssDoc DBMS_XMLDOM.DomDocument;
v_itemNode DBMS_XMLDOM.DomNode;
v_childnode DBMS_XMLDOM.DomNode;
v_rssEntryList DBMS_XMLDOM.DomNodeList;
v_rssItemFields DBMS_XMLDOM.DomNodeList;
v_childNodeText VARCHAR2(32767);

v_req UTL_HTTP.REQ;
v_resp UTL_HTTP.RESP;

v_source VARCHAR2(1024);
v_tempSourceClob CLOB;
v_tempXMLTYPE XMLTYPE;


PROCEDURE report_rss_item(p_rss_item IN rss_type)
IS
BEGIN
HTP.TABLEROWOPEN();
HTP.TABLEDATA(
'<a href="'
|| p_rss_item.link
|| '" style="color:#FF0000" target="_blank">'
|| p_rss_item.title
|| '</a>'
);
HTP.TABLEROWCLOSE();

EXCEPTION
WHEN OTHERS THEN
HTP.PRINT('Error occured in report_rss_item internal procedure');
RAISE;
END report_rss_item;

--****************************************************************************
-- Main procedure
--****************************************************************************
BEGIN
v_req := UTL_HTTP.BEGIN_REQUEST(v_url);
UTL_HTTP.SET_HEADER(v_req, 'User-Agent', 'Oracle UTL_HTTP/Oracle10g R1');
UTL_HTTP.SET_HEADER(v_req, 'Content-Type', 'text/xml;charset=UTF-8');
v_resp := UTL_HTTP.GET_RESPONSE(v_req);

DBMS_LOB.CREATETEMPORARY(v_tempSourceClob, FALSE);
BEGIN
LOOP
UTL_HTTP.READ_LINE(v_resp, v_source, true);

-- 改行コード強制的に付加。
-- xml_println()でDBMS_OUTPUT.PUT_LINE()が、最大255文字までしか
-- 表示できないことへの一時的な対策。(試しているサイトについてはこれで
-- 回避できているので今のところはこのままで。)
v_source := v_source || UTL_TCP.CRLF;
DBMS_LOB.WRITEAPPEND(v_tempSourceClob, LENGTH(v_source), v_source);

END LOOP;
EXCEPTION
WHEN UTL_HTTP.END_OF_BODY THEN
UTL_HTTP.END_RESPONSE(v_resp);
END;

v_myParser := DBMS_XMLPARSER.NEWPARSER();
DBMS_XMLPARSER.PARSECLOB(v_myParser, v_tempSourceClob);
v_rssDoc := DBMS_XMLPARSER.GETDOCUMENT(v_myParser);
v_tempXMLType := DBMS_XMLDOM.GETXMLTYPE(v_rssDoc);
v_rssEntryList := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(v_rssDoc, 'item');
v_rss_item := v_rss_empty_item;

HTP.TABLEOPEN();
HTP.TABLEROWOPEN();
HTP.TABLEHEADER(
cvalue => v_tempXMLType.EXTRACT('/rss/channel/title/text()').GETSTRINGVAL
|| ' - most recent '
|| DBMS_XMLDOM.GETLENGTH(v_rssEntryList)
|| ' articles:',
cattributes => 'style="font-size:18px"',
calign => 'align="left"'
);
HTP.TABLEROWCLOSE();

FOR i IN 1..DBMS_XMLDOM.GETLENGTH(v_rssEntryList) LOOP
v_itemNode := DBMS_XMLDOM.ITEM(v_rssEntryList, i-1);
v_rssItemFields := DBMS_XMLDOM.GETCHILDNODES(v_itemNode);

FOR j IN 1..DBMS_XMLDOM.GETLENGTH(v_rssItemFields) LOOP
v_childnode := DBMS_XMLDOM.ITEM(v_rssItemFields, j-1);
v_childNodeText := DBMS_XMLDOM.GETNODEVALUE(
DBMS_XMLDOM.GETFIRSTCHILD(v_childnode)
);

CASE DBMS_XMLDOM.GETNODENAME(v_childnode)
WHEN 'title' THEN
v_rss_item.title := v_childNodeText;

WHEN 'link' THEN
v_rss_item.link := v_childNodeText;

ELSE
NULL;
END CASE;
END LOOP;
report_rss_item(v_rss_item);
END LOOP;

HTP.TABLECLOSE();
DBMS_LOB.FREETEMPORARY(v_tempSourceClob);
DBMS_XMLPARSER.FREEPARSER(v_myParser);

EXCEPTION
WHEN OTHERS THEN
HTP.PRINT(
'Main Procedure:'
|| sqlerrm()
);
RAISE;
END;



前回のストアドプロシージャのロジックとの違いはあまり無いが、無名PL/SQLブロックとして組み込むことと、DBMS_OUTPUTパッケージを利用している部分を、HTPパッケージを利用するように変更しなければならない。(やっつけ仕事的なコードになってしまったなが、文字化け回避の方法が見えればOKなので他には目をつぶってくださいませ。。。)

尚、
HTPパッケージについては、PL/SQL パッケージ・プロシージャおよびタイプ・リファレンス
HTMLDB 2.0についてはOracle HTMLDB 2.0(英語)や、HTMLDB 2.0のオンラインヘルプなどが参考になるだろう。
#今回は、オンラインヘルプしか利用ませんでした。そんな程度でも作れるくらい簡単です。。。


次回は、HTMLDB 2.0 に前述の無名PL/SQLブロックを組み込んで試すことにする。




これから見ようとしているDVD:
随分前、こんな記事を書いたが、なんと ザ・インターネット2がリリースされていた。
邦題:インターネットの続編?のようなのだが。。。。不覚にも全くしらなかった。でも主演はサンドラブロックではなさそうだな。。。そういえば、ザ・インターネットが公開されたのは1996年。10年も経ったのか・・・と。


ところで、インターネット2っていうと、次世代インターネットを指していたりする。


##############################
2006/08/13
ザ・インターネット2見ましたが、ぜんぜん面白くない。ザ・インターネットの続編だなんて、とんでもない無いですね。
ザ・インターネットの延長線上にあると思ってみてしまうとがっかりするので、完全に別ものと思って見てくださいね。

| | コメント (0) | トラックバック (0)

2005年11月 8日 (火)

Mac De HTML DB 10g その8

なんとか風邪も完治!?
TSUTAYAで借りた天龍八部の8、9、10巻とJazzのCDを買い物のついでに返却しようと外出。

こちらは運転するのでTSUTAYAの袋を妻に預けたのだが、その袋のレンタルレシートに、

天龍八部 8巻
天龍八部 9巻
天龍八部 10巻
矢野沙織/YANO SAORI

とリストされていた、最後にあるのがJazzのCD(矢野沙織さんは16歳にしてjazz sax CDデビュー。現在確か、18歳くらい。)

なのだが、妻は何を勘違いしたのか?(Hビデオでも借りてきたものと勘違いして)いや〜〜〜ん。とか、きゃ〜〜っ。とか叫んでいる。
「おいおい、Hビデオじゃないぞ〜〜〜。JazzのCDだって、それ!!!! (^^;;;;」とツッコミ!。(爆)





ちなみに、「天龍八部」は大映テレビのドラマの人間関係以上にドロドロしているので笑う場面ではないが笑いがでる。ワイヤーアクション+VFX+カンフー好きにはおすすめ。(ただ、殺戮シーンなどが多い。)




それに近いシリーズに「風雲」がある。「風雲」は千葉真一も出演していたことで有名だが。こちらも人間関係のドロドロさとか、失恋したかと思ったら飲んだくれてしまうところとか、またすぐ恋いしちゃうとか、上げたり下げたり、いろいろ面白いです。VFXはちょっとチープな感じがある。(予算少なかったんだろうか)

前述の映画というかドラマか?は、家系図を書いたら大変そうだ。皆兄弟いや姉妹、いや異母兄弟とか異母兄妹か?!、実は血のつながりは無い兄妹だったりと、人間関係が複雑すぎる。。。。




さて、なが〜〜い前置きはこのくらいにして、本題。
使い勝手を試そうと、HTML DBのサンプルアプリとして選んだ”ネタ”が家系図データ管理だったが、家系図データのモデルって深く考えれば考えるほど複雑。本気で考えるとハマりそうなので我が家の家系図データを管理するのに必要最低限な情報+我が家の家系図には不要なんだけどちょっと飾りを付けた感じのERモデルにしてお茶を濁すことにした。

(職業病というかなんというか、このようなモデルを考え始めると、、、、ちょっとした時間があると考えてる(Python Challengeも同じだが)。隣で奥さんがなんか言ってたけど、全然耳に入っていないのに空返事。返事をしてから、何だっけ? いまの? って聞き返したりして。。(^^;;;;  
目的は家系図作ることではなくて、HTML DBの使い勝手を調べるということなので脱線しないようにしないといけない。。。。。)

ということで現在進行形。。。だが、明日(もう今日か!)からJavaOneだな〜。

| | コメント (0) | トラックバック (0)

2005年10月30日 (日)

Mac De HTML DB 10g その7

いや〜〜。女性は強い!?のか? 
私の母が風邪で熱を出したり寝込んだ姿を一度も見た事が無い。妻も滅多に風邪をひかない(3年に1度くらい)。なのに私は、毎年1度年中行事の如く風邪をひく。先日、妻の職場で”げほげほ”していて4日も風邪で休んだ方がいたそうで、風邪だけには弱い私を気にして外でホコリ払いと除菌消臭スプレーをスーツに(ほんとうにそれで風邪ウィルスがなくなるのか疑問)したうえに、イゾジンでうがいしている妻だったが、そいつはやはりやってきた。そう、4年ぶりに38度超えの熱がでる風邪をひいてしまった。喉の痛みから始まり、翌日には熱が高くなりあっというまに38度、熱が引いたのは翌々日。それが引いたかと思ったら鼻づまりのために呼吸するのがつらく眠れない(まさに、風邪の症状フルコースなのである。こんなフルコースはうれしくない。)。そしてやっと回復間近? という状況でこれを書いている。これが書けるくらいだからあとちょっとで復活だろうな〜。

と前置きかかなり長くなったが、前回、Mac de HTML DBで作る簡単なサンプルアプリケーションに悩んでいると書いた。いろいろ悩んだ末、家系図管理アプリを作ってみることにした。
何故、家系図に落ち着いたかというと、先日叔母が逝去し、通夜と葬儀の為に集まった親戚の顔と名前をすべて妻に理解してもらおうと手書きの家系図を書いていたのだが、従姉妹のご主人からその家系図がほしいと言われたのがきっかけだった。まあ、うちの家系図といっても曾祖父母くらいからのものだが。。。。。手書きもなんなので、MacOSX用の家系図作成ソフトを探してみた。。。ところが、日本のものはほとんどがWindows版(がく〜〜〜っ。)そしてたどり着いたのが、これ

http://www.imac.com/downloads/macosx/home_learning/macfamilytree.html

メニューなどは英語というかエラーメッセージはドイツ語っぽいが、マルチバイト言語にも対応しているようだ

001
002

いろいろなビューがあるが、私は2番目にあるビューさえあれば十分。

003

004

006


これ結構イケテいるのだが、$40のsharewareなのである。滅多にメンテナンスしない我が家の家系図(孔子から始まる家系図は300万人以上いるらしいのでメンテナンスするのは大変だろうけど。。)に$40をかけるつもりはないし、我が家の家系図が描ければ十分なのでのでこの際、HTMLDBのサンプルで作ってしまえ! となった次第である。(どんなものができるか。。。。あまり期待しないでお待ちください。。)。

| | コメント (0) | トラックバック (0)

2005年10月22日 (土)

Mac De HTML DB 10g その6 Version確認

簡単なアプリケーションを作ってみよう。という段階なのだが、何を作るか悩んでいる。アドレス帳? それとも、簡単な家計簿? ん〜〜〜〜。 

ネタが無いので、Versionの確認方法でも書いておきますかね。。。

HTML DB 10g (v2.0)にすると、 FLOWS_020000 というユーザが作成されている。

SQL*Plusからだと、 FLOWS_020000.wwv_flows_release というファンクションを呼び出せばバージョンが確認できる。(なお、FLOWS_020000は、ロックされているのでsysユーザから実行して確認する。アンロックはしないほうがよいだろう。最初からロックされているので。。)

G5Server:〜 oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 土 10月 22 17:13:58 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

> conn / as sysdba
接続されました。
SYS>
SYS>
SYS> select flows_020000.wwv_flows_release from dual;

WWV_FLOWS_RELEASE
-------------------------------------------------------
2.0.0.00.49

SYS>

そのほかの方法は、HTML DBにログインして確認する方法。(通常はこちらの方法で確認するのだろうね。)

check_version

check_version2

check_version3

| | コメント (0) | トラックバック (0)

2005年10月15日 (土)

Mac De HTML DB 10g その5 動作確認

一通りの作業は終えた。HTML DB v2.0へのアップデートがうまく行ったか簡単な動作確認(デモアプリケーションの起動などを行ってみる)

簡単に動作確認を行った。文字化けもなくすんなり動作しているように見える。
また、画面のアイコンボタンが個人的にはいい感じ。しかもドロップダウンメニューが階層化されているのもいいですね。CA の CleverPath Portalのポーレットデザイン時のUIがお気に入りだったが、これはこれでいいかもしれないね。








次は簡単なアプリケーションを作ってみる予定。

| | コメント (0) | トラックバック (0)

2005年10月14日 (金)

Mac De HTML DB 10g その4 パッチ適用とHTML DB 2.0へのアップデート

前回までで、HTML DB 10g (1.5)のインストールと構成は終了した。今回は、OWAのパッチ適用及び、HTML DB 10g (2.0)へのupdateを行う。

NLS_LANGをAL32UTF8に変更するため、Terminlの文字エンコードもUTF8にしておく。


1)owaのパッチを適用する。

htmldb_2.0.zipを解凍すると作成されるディレクトリにあるowaのパッチが含まれるディレクトリに移動してパッチを適用する。

尚、これ以降の作業では、NLS_LANGを JAPANESE_JAPAN.AL32UTF8に変更して行う。

(手順の詳細はパッチ用ディレクトリに含まれるREADME.txtを参照のこと。)

Last login: Thu Oct 13 23:42:47 on ttyp1
Welcome to Darwin!
G5Server:˜ oracle$ echo $NLS_LANG
Japanese_Japan.JA16SJISTILDE
G5Server:˜ oracle$ export NLS_LANG=JAPANESE_JAPAN.AL32UTF8
G5Server:˜ oracle$ cd /Volumes/Discus/4oracle/oracle/Desktop/htmldb/patch/bug4554072
G5Server:˜/Desktop/htmldb/patch/bug4554072 oracle$ ll
total 192
drwxr-xr-x 3 oracle oinstall 102 Aug 25 17:47 309x
drwxr-xr-x 4 oracle oinstall 136 Sep 12 20:07 904x_1012x
-rw-r--r-- 1 oracle oinstall 3666 Sep 12 13:34 README.txt
-rw-r--r-- 1 oracle oinstall 5773 Aug 19 15:22 htp_htf_backup.sql
G5Server:˜/Desktop/htmldb/patch/bug4554072 oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 木 10月 13 23:45:33 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

> conn / as sysdba
接続されました。
SYS> @htp_htf_backup
SYS> @904x_1012x/privht
SYS> exit
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining optionsとの接続が切断されました。

2)HTML DB 2.0インストール

htmldbins.sqlの引数の詳細については、htmldb_2.0.zipを解凍して作成されるディレクトリにある、welcome.htmをブラウザで開き、「documentation」タブ->HTML DB DocumentationにあるInstallation Guide HTMLリンクをクリック->3.2 Installing the Oracle HTML DB Softwareを参照のこと。
G5Server:˜/Desktop/htmldb/patch/bug4554072 oracle$ cd ../..
G5Server:˜/Desktop/htmldb oracle$
G5Server:˜/Desktop/htmldb oracle$ sqlplus /nolog
SQL*Plus: Release 10.1.0.3.0 - Production on 木 10月 13 23:45:33 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

> conn / as sysdba
接続されました。
SYS> @htmldbins xtiger SYSAUX SYSAUX TEMP /i/ xtiger
. ____ ____ ____ ____
. / \ | \ /\ / | /
.| || / / \ | | |
.| ||--- ---- | | |--
.| || \ / \ | | |
. \____/ | \/ \ \____ |____ \____
.
. HTML DB Hosted Development Service Installation.
.........................................................

...中略...

3)HTML DB 2.0 日本語版インストール

htmldbins.sqlの引数の詳細については、htmldb_2.0.zipを解凍して作成されるディレクトリにある、welcome.htmをブラウザで開き、「documentation」タブ->HTML DB DocumentationにあるInstallation Guide HTMLリンクをクリック->4.5 Installing Oracle HTML DB in Other Languagesを参照のこと。
G5Server:˜/Desktop/htmldb oracle$ cd builder/ja
G5Server:˜/Desktop/htmldb/builder/ja oracle$ ll
total 65432
-r--r--r-- 1 oracle oinstall 21729796 Sep 7 15:40 f4000_ja.sql
-r--r--r-- 1 oracle oinstall 1739940 Aug 21 16:59 f4050_ja.sql
-r--r--r-- 1 oracle oinstall 59058 Aug 21 17:00 f4155_ja.sql
-r--r--r-- 1 oracle oinstall 783102 Aug 21 17:00 f4300_ja.sql
-r--r--r-- 1 oracle oinstall 1370464 Aug 21 16:59 f4350_ja.sql
-r--r--r-- 1 oracle oinstall 1147649 Aug 21 16:59 f4411_ja.sql
-r--r--r-- 1 oracle oinstall 6406200 Aug 21 16:59 f4500_ja.sql
-r--r--r-- 1 oracle oinstall 96005 Aug 21 17:00 f4550_ja.sql
-r--r--r-- 1 oracle oinstall 131682 Aug 21 16:59 f4700_ja.sql
-r--r--r-- 1 oracle oinstall 2281 Dec 29 2003 load_ja.sql
-r--r--r-- 1 oracle oinstall 1869 Oct 4 2004 unload_ja.sql
G5Server:˜/Desktop/htmldb/builder/ja oracle$ sqlplus /nolog
SQL*Plus: Release 10.1.0.3.0 - Production on 木 10月 13 23:45:33 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

> conn / as sysdba
接続されました。
SYS> ALTER SESSION SET CURRENT_SCHEMA = FLOWS_020000;

セッションが変更されました。

SYS> @load_ja
. ____ ____ ____ ____
. / \ | \ /\ / | /
.| || / / \ | | |
.| ||--- ---- | | |--
.| || \ / \ | | |
. \____/ | \/ \ \____ |____ \____
.
. HTML DB Hosted Development Service Installation.
.........................................................

...中略...



これでOWAへのパッチ適用と HTML DB 2.0 へのアップグレード作業が完了した。

う˜˜ん。順調過ぎて逆に不安(笑)。

次回、HTML DB 2.0 簡単な動作確認へつづく。

| | コメント (1) | トラックバック (0)

2005年10月13日 (木)

Mac De HTML DB 10g その3 インストール後の作業

前回までで、Oracle HTTP Serverのインストールと HTML DB 10g (1.5) のインストールは終了した。

さて、今回はインストール後の作業として、Oracle HTTP ServerからHTML DBを利用するために必要な構成ファイルの編集(OUIのインストールでほとんど出来上がっているのだが)及び、Oracle HTTP Serverの起動、そしてアプリケ−ション開発に必要な作業領域の作成から開発用ユーザの作成までを行う。

HTML DBは、Oracle HTTP Server (Apache)からmod_plsqlを介してWeb Tool Kit (htpパッケージや、htfパッケージなど)やHTML DBのパッケージ群などのストアドプロシージャを実行する。
OWSやWASのころは構成ファイルは dad.conf だったのだが、現在は marvel.conf がデフォルトのようである。(ただし、dad.conf も利用可能で dad.conf がある場合には dad.conf も読み込まれる。”も”というのがポイントだ。2つの構成ファイルはどちら"も"読み込まれるのだ。dad.conf 、marvel.conf の順にimport されている。マニュアルはまだそれほど読み込んでいないのでdad.confとmarvel.confについては別途調べておいた方が良さそうだ。ちなみにPlsqlDatabasePasswordは暗号化されていた。)


では早速、marvel.conf を編集してみる。
(以下、HTML DBをインストールしたディレクトリを$HTMLDB_HOMEと記す。)

$ cat $HTMLDB_HOME/Apache/modplsql/conf/marvel.conf
Alias /i/ "/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel/images/"
<Location /pls/htmldb>
SetHandler pls_handler
Order deny,allow
Allow from all
AllowOverride None
PlsqlDatabaseUsername HTMLDB_PUBLIC_USER
PlsqlDatabasePassword @BXDpf8GmfAmsbuOTY0ApZ78=
PlsqlDatabaseConnectString 192.168.1.19:1521:tiger ServiceNameFormat
PlsqlDefaultPage htmldb
PlsqlDocumentTablename wwv_flow_file_objects$
PlsqlDocumentPath docs
PlsqlDocumentProcedure wwv_flow_file_manager.process_download
PlsqlAuthenticationMode Basic
PlsqlNLSLanguage JAPANESE_JAPAN.JA16SJISTILDE
</Location>
AddType text/xml xbl
AddType text/x-component htc

marvel.conf はインストール完了時点でほぼ完成している。加えた変更は PlsqlNLSLanguage を AMERICAN_AMERICA.JA16SJISTILDE から JAPANESE_JAPAN.JA16SJISTILDE に変更し、最後にある AddType の2行を追加しただけである。
尚、タグの詳細は付属マニュアルに"きっちり"書かれているのでそちらを参照のこと。

編集が終わったら、Oracle HTTP Serverを起動する。(OUIでインストールした場合には、起動されているはずなので一旦停止してから起動する。)

$ $HTMLDB_HOME/Apache/Apache/bin/apachectl stop
$HTMLDB_HOME/Apache/Apache/bin/apachectl start: httpd stopped

$ $HTMLDB_HOME/Apache/Apache/bin/apachectl start
$HTMLDB_HOME/Apache/Apache/bin/apachectl start: httpd started

インストールの最後(OUIの画面)にOracle HTTP ServerのURLが表示されていたのを覚えているだろうか? port番号を忘れてしまう方が多いがそのような場合には、
$ cat $HTMLDB_HOME/install/portlist.ini
;OracleAS Components reserve the following ports at install time.
;As a post-installation step, you can reconfigure a component to use a different port.
;Those changes will not be visible in this file.

[System]
Host Name = 192.168.1.19

[Ports]
Oracle HTTP Server port = 7780
Oracle HTTP Server Listen port = 7780
Oracle HTTP Server SSL port = 4458
Oracle HTTP Server Listen (SSL) port = 4458
Oracle HTTP Server Diagnostic port = 7202
Oracle HTTP Server Listen port = 7780
Oracle HTTP Server Listen (SSL) port = 4458

で確認できる。

今回は、localhostでも、192.168.1.19でもどちらでも問題ないはずなので、http://localhost:7780/pls/htmldb/htmldb_adminにアクセスし作業領域と開発用ユーザを作成する。
htmldbの管理ユーザは adminで、パスワードは ouiで指定したパスワードを入力すればよい。行った操作は以下のFlashMovie参照。
この例では、作業領域AQUARIUMを作成時に新規スキーマAQUARIUMを作成し50MBの表領域(FLOWS_1)を新たに作成した。










うまく出来たようなので、先ほど作成した開発用ユーザでログインしてみる。urlは、http://localhost:7780/pls/htmldb/である。










と、ここまでは順調!。
次回、HTML DB2.0に付属する、Web Tool Kit 用パッチの適用へつづく。

| | コメント (0) | トラックバック (0)

2005年10月12日 (水)

Mac De HTML DB 10g その2 インストール編

前回からのつづき。

環境変数の設定。(インストールの注意点など、詳細は付属ドキュメントをよく読んでくださいね)


今回は、Oracle HTTP ServerとHTML DB 10g をインストールするので、Oracle10g Database及び、listenerを起動しておき、OUIを利用してインストールする。(MacOSX では、onsctlでOracle NamesOracle Notification Serverを起動しておくことをお忘れなく。忘れるとListenerが停止できなくなり、killすることになる。)

dbstart


ORACLE_BASEだけを設定しておけば問題ないのだが、データベースキャラクタセットがマルチバイトキャラクタセットである場合には問題があるようで、英語メッセージを表示させる場合にはAMERICAN_AMERICA.AL32UTF8、日本語メッセージを表示させる場合は、JAPANESE_JAPAN.AL32UTF8のいずれかを、NLS_LANGに設定しておく必要がある。これを忘れるとHTML DBの日本語はすべて文字化けするので注意が必要である。その他のオラクル用環境変数はunsetしておく。
尚、ORACLE_BASEは、Oracle10g R1のORACLE_BASEと同じであるが、HTML DB向けにOracle HTTP Serverもインストールするためインストール先のORACLE_HOME用ディレクトリは別にする必要があるので注意すること。(既存ORACLE_HOMEにインストールしようとするとOUIが警告を出してくれる)

また、Terminalの文字コードは一時的にUTF8にしておくとよいだろう。
runinstall


ship_mac_companioncd.cpio.gzを解凍すると、Disk1というディレクトリが作成されているのでそこに移動して、runInstallerを実行する。最後に、root.shを実行してインストールは完了する。(OUIのログの最後にjavaの例外が出ているようだがOUI自体は正常終了するので気にせずに!)









ちなみに、NLS_LANGをAL32UTF8に設定することを忘れると、OUIのログが文字化けを起こすので間違いに気が付くと思う。尚、やり直す際にはインストールがどこまで進んだかにもよるが、OUIでHTML DBを削除、HTML DBをインストールしたORACLE_HOME以下のディレクトリを削除、そして、FLOWS_010500、FLOWS_FILES、HTMLDB_PUBLIC_USERの3ユーザをdrop user ... cascade文で削除してから再インストールする。
(Windowsと違ってレジストリなんてのが無いので再インストールは楽です)


インストール後の作業へ続く。。。。

| | コメント (0) | トラックバック (0)

2005年10月11日 (火)

Mac De HTML DB 10g その1 インストール編

PL/SQL で Python Challengeはやる気がでるまで(すぐ再開したりしてね)お休み。 
前回触れたが Oracle10g R1 以降に付属するHTML DBで遊んでみることにする。このHTML DB、Oracle10g R1が発表された2003年のOracle Worldで初めてHTML DBを見たとき、Oracle9i AS R2 Portalのデータベースポートレットとどう違うのさ! と思っていた。(OW2003会場で担当者に聞いても差が見えなかったので最近まで気にも留めていなかった)。 しかし、これを導入したら楽なのになと思うシステムに最近関わったことや、MacOSX版Oracle10gでも動きそうなので Mac De Oracle としては放っておけなくなったのであった。

Oracle9i AS R2 Portalや、Oracle AS10g R1 Portal(中身はOracle9i AS R3といってもいいくらいなのだが。。)のデータベースポートレットは、Oracle AS Portalが必要なのである。(あたりまえじゃん! と自分へツッコミ。)。 PL/SQLを使って比較的簡単なWeb Applicationをウィザードを利用して作成するためだけに、Oracle9i AS Portalや、OracleAS 10g Portalを導入するのは無駄だと思う。 Portal導入なしにWeb Tool Kitによる作成より簡単(WASやOASの時代より簡単)に、PL/SQLでWeb Applicationを作成したいというシステムでは重宝しそうに思える。(OracleAS 10g R2 Portalはまだ見ていないのでどれだけ進化したか不明だが。。)

前置きはこれくらいにして、早速インストールしてみることにする。 HTML DBは、CD版だとCompanion CDに含まれており、Oracle HTTP Server (ApacheをOracleが拡張したもの)も含まれている。 (DVD版だと1枚にまとめられている。) 今回はUS OTNからダウンロードしたものを利用した。

Oracle Database 10g Companion CD Release 1 (10.1.0.3) for Apple Mac OS X
  ship_mac_companioncd.cpio.gz (511,023,225 bytes) (cksum - 1634262664)  
  Oracle HTML DB v2.0 (56,104,916 bytes) - latest standalone version of HTML DB New (13-Sep-05)
尚、Oracle10g R1に付属するHTML DBは、1.5であるが、先月 2.0がリリースされたので2.0へのアップグレードも行うことにする。

以下の手順で進める。


  1. オラクル所有者でログインする。(このユーザで、Oracle10g R1 for MacOSX Serverをインストール及び構成済みである。)

  2. Oralce NamesOracle Notification Service(マニュアルバグのため修正)、Listener、Oracle10g Databaseインスタンスの順に起動する。

  3. ship_mac_companioncd.cpio.gzと Oracle HTML DB v2.0 の2つをダウンロードする。
    (尚、ダウンロードする際には、Oracle Technology Network Developer License Terms に同意する必要がある。)

  4. ship_mac_companioncd.cpio.gzと htmldb_2.0.zipを解凍する。

  5. 環境変数を設定する。
    マルチバイトキャラクタセットをデータベースキャラクタセットとしている場合には、ORACLE_BASE以外にNLS_LANGも設定する。
  6. Oracle Universal Installer(OUI)によるインストール。
    ship_mac_companioncd.cpio.gzを解凍するとDisk1というディレクトリができる。Disk1にディレクトリを移動して、./runInstaller でOUIを起動する。

  7. インストール終了後の作業。


    1. marvel.confを編集する。

    2. Oracle HTTP Serverを起動する。

    3. 作業領域を作成する。

    4. 開発ユーザを追加する。


  8. Web Tool Kit のPatchを適用する。

  9. HTML DB 2.0にアップグレードする。

  10. アプリケーションを開発する。

次回は、5.以降の作業から続きを書く予定である。

2009/5/12変更
Oracle namesはマニュアルバグであるため、Oracle Notification Serviceへ修正した。

| | コメント (0) | トラックバック (0)