アーカイブ

‘Oracle’ タグのついている投稿

Oracle JDeveloper 11gのチュートリアルと学習

2010 年 2 月 7 日 oklab コメントはありません

Java の開発は 統合開発環境として Eclipse を使うのが一般的です。私も仕事でよく使うのですが、今後使用するかもしれないので、 休日中に、Oracle JDeveloper 11g  調べてみました。

Oracle は数年前に Weblogic アプリケーションサーバで有名な BEA システムズ を買収し、最近 サンマイクロシステムズを買収しました。そのため Eclipse と比較すると、IDE にWeblogicが組み込まれている点と、Oracle 用の SQL開発環境が組み込まれている点が Eclipse に対するメリットと感じました。 Weblogic向けのEJB関係の自動生成機能などは非常に便利で、EJB2.0 のころと比べると作る敷居がかなり下がった印象でした。

デメリットは、Eclipse のような豊富なプラグインでカスタマイズできないことと、日本語ドキュメントの少なさを感じました。そのため、Weblogic と Oracle を使う前提だと強力な統合開発環境ですが、開発は、Tomcat アプリケーションサーバを使ったり、Seaserフレームワークなど様々なフレームワークを使う場合は Eclipse のほうが使いやすいです。

学習するドキュメントについては、英語ですが、Oracle.com – Getting Started: Java が参考になります。はじめは、Oracle JDeveloper 11g のドキュメントを Google でがんばって探したのですが入門レベルの日本語ドキュメントはないようでした。英語は大変ですが上記ドキュメントで学習したほうが早いです。また、このチュートリアルはスクリーンショットがあるので何とかなると思います。

チュートリアルのはじめの章(Step 3)で、簡単な Java のクラスを作成したり、リファクタリング、ビルド、デバッグなどを通して、その作業で、JDeveloper がどのような動きをするのかが理解できます。 休日にVisual Studio 、NetBeans を使ったりしてある程度いろいろな統合開発環境には慣れているのですが、Weblogic がどのように統合されているかなどを理解するためにも、はじめの章は試してみたほうがよいです。所要時間は30分ぐらいです。

また、Step 4 の Build the business logic for an application using EJB 3.0 で Weblogic向けの EJB3.0 と JPA が学習できます。所要時間はこれも30分くらいです。

私の場合はここまでで1時間30分ぐらい掛かりましたが Step 4まで行えば 今後 JDeveloper で J2EE 側の実装が可能になります。Step 5まで行えば、Web層を含めて開発ができるようになると思います。Step 6 ではさらに SOA の学習となります。

今回 JDeveloper 11g をはじめて使ってみましたが、やはり自社製品との連携機能は強力でした。Oracle データベースは、CPUなどのハードウェアの制約がありますが、Oracle XE が無償で使えるので、Weblogic も個人向けに 無償版ライセンスができると、もっと JDeveloper と Weblogic のユーザが増えそうですね。

カテゴリー: Java, データベース タグ: , ,

OracleのWebLogic Server 11gR1、Eclipse、Oracle 11gでEJB3.0の概要を学習

2010 年 1 月 30 日 oklab コメントはありません

限られた時間でEJB3.0の概要を把握するため、2日という期間でEJB3.0が何かを調べたときの資料です。

EJB3.0は自動化やDI,O/Rマッピングなどを機械的にやるので、概要を把握する際にトライアンドエラーをするコストがすごく高くつきます。また、学習段階だとそのエラーが何を意味しているのかは理解できても、その対策方法を行うのにすごく時間がかかってしまいます。

下記で説明する「Oracle Fusion Middleware ドキュメント・ライブラリ」を読みつつ、Google検索すれば、EJB3.0の概要がわかると思います。用語を押さえたら、「Introduction to Oracle Enterprise Pack for Eclipse 11g JPA Workbench」で手を動かすことで実装のスタートラインに立てると思います。

環境

  • DB:Oracle 10g XE or Oracle 11g
  • 開発ツール:Oracle Enterprise Pack for Eclipse(OEPE)
  • アプリケーションサーバー:WebLogic Server 11gR1
  • OS:Windows Server 2008

参考資料

上記環境で開発するために、参考になるリンク。

Getting Started With the Oracle Database Plugin for Eclipse

Oracle Database Pluginの概要。

http://download.oracle.com/docs/cd/E14545_01/help/oracle.eclipse.tools.database.doc/html/gettingStarted/files/gettingStarted.html

 Introduction to Oracle Enterprise Pack for Eclipse 11g JPA Workbench

Oracle Enterprise Pack for Eclipse、WebLogic Server 11gR1、Oracle 10g XEを使ってEJB3.0のセッションBean、エンティティBean、JPA、呼び出しとなるJSP/Servletのユーザーインタフェース作成をして、EARパッケージをデプロイするまで記述されています。また、このチュートリアルで使ったサンプルのZIPがあるので、EJB3.0をどのように実装すればわからない場合はお勧めです。

http://www.oracle.com/technology/pub/articles/cioroianu-eclipse-jpa.html

Oracle Enterprise Pack for Eclipse 11gR1 PS1

OEPEのページ。WebLogic Server 11gR1は、アプリケーションサーバのみと、OEPEバンドル版があるので、バンドル版をインストールする場合は必要ありません。

 http://www.oracle.com/technology/global/jp/products/enterprise-pack-for-eclipse/index.html

Oracle Fusion Middleware ドキュメント・ライブラリ

アプリケーションのデプロイメントアプリケーションの開発Web アプリケーション、サーブレット、JSP の開発エンタープライズ JavaBeans バージョン 3.0 プログラマーズ ガイド から必要なところをつまみ食いすれば、EJB3.0がわかってきます。

http://download.oracle.com/docs/cd/E16340_01/dev.htm

EJB3 – HelloWorld example Using Weblogic 10.3

JNDI lookupでのEJB3.0の呼び出しサンプルです。上記の「Introduction to Oracle Enterprise Pack for Eclipse 11g JPA Workbench」を見つけ出す前まで、JSP/ServletからEJB3.0のセッションBeanをうまく呼び出せなくて試行錯誤しているときに見つけました。

ドキュメント内のNoteで書かれていますが、ユーザ名、パスワード、プロバイダURLは各自設定する必要があります。

http://upog.wordpress.com/2009/10/18/ejb3-helloworld-example-using-weblogic-10-3/

James Bayer’s Blog - Workshop for WebLogic 10.3 JEE 5 Trial and Error

クライアントPC上のJavaVMで動作するJavaクライアントプログラムから、サーバ側のWebLogic Server のEJB3.0セッションBeanを呼び出すための記事です。Oracle Enterprise Pack for Eclipse(OEPE)上で、J2EE アプリケーションクライアントを実行するには、実行の設定で、Bootstrap EntriesからWeblogic関係のライブラリを削除すること、User Entriesにwlclient.jarを追加する事について書かれています。

http://blogs.oracle.com/jamesbayer/2008/08/workshop_for_weblogic_103_jee.html

用語

  •  Oracle E-Business Suite

ERPパッケージ。財務会計、人事管理(HRM)、サプライチェーンマネジメント(SCM)、購買調達、プロジェクト管理、マスターデータ管理のソリューションを包括的に提供。

  • Java EE5
    • EJB3.0(セッションBean,エンティティ,インターセプター)
    • Webサービス
    • JSF/JSTL
    • JPA O/Rマッピング
    • その他、トランザクション管理、リソース管理など

 

  • EARファイル

EJBパッケージ、WARパッケージ(JSP/ServletなどWeb層のアプリケーション)などをまとめたものです。Eclipseの場合は、Enterprise Applicationプロジェクトを作成します。エンタープライズアプリケーションとも呼ばれます。これはただまとめるための器となるプロジェクトです。これに、EJBプロジェクト、Dynamic Web プロジェクト、JPAプロジェクトを追加します。

EARファイル = WARファイル + EJB Jarファイル …

  • Oracleの永続化プロダクト

もともとは、Oracle Kodo JPA/JDOがでしたが、マニュアルを確認すると現在は非推奨となっています。Oracle TopLinkを使うように促しています。2010年現在、Oracle TopLinkは、Eclipse Foundationに寄与されたのでEclipseLinkになっています。よって、EclipseからJPAプロジェクトを作成すれば、EclipseLinkをJPA実装として使えます。

  • 依存性注入

アプリケーションが起動中に、Javaのフィールド変数に値を埋めてくれる機能と考えればわかりやすいです。DIとも呼ばれます。EJBでは、SQLを使わないようにJPAのO/Rマッピング、EJB2.0時代のホーム/リモートインターフェースの省略などで使われます。

  • インターセプター

アスペクト指向を組み入れる方法です。プログラムをするとき、業務ロジック以外に、ログ出力機能、セキュリティチェック機能、例外処理機能など、本来業務ロジックとしてはではないプログラミングが必要になります。これらのコードを業務ロジックとともに記述すると、複雑になってくるので、普通はオブジェクト指向の継承や委譲機能を使って、プログラムを分割します。これをさらに発展させたのが、インターセプターです。セキュリティチェック機能の後に、ログ出力機能を呼び出し、その後業務ロジックを呼び出す。また設定だけで、呼び出す順番を変更できたりします。EJB側で使えるフィルターです。

  • J2EE アプリケーションクライアント

EARファイルに含めることのできるクライアントモジュール(JARファイル)の事です。J2EE標準デプロイメント記述子のapplication-client.xmlが含まれています。またWeblogic

  • T3プロトコル

Oracle独自の通信プロトコルです。

  • Weblogic フルクライアント

OracleのT3プロトコルを使ったJava RMIクライアントです。Weblogicのwlfullclient.jarがライブラリとして必要になります。

カテゴリー: Java タグ: , ,

Eclipse 3.5 (Galileo)のJPA機能でOracle XE(Oracle10g)に接続した時のpersistence.xml

2009 年 8 月 29 日 oklab コメントはありません

Eclipse 3.5 でJPAプロジェクトを新規に作成して、OracleXE に接続した時のpersistence.xml です。データソースを取得して設定したい場合は、<non-jta-data-source>、<jta-data-source>で設定が可能です。JavaEE アプリケーションサーバを使わない場合やJPAを試してみる場合は、persistence.xml にデータベース接続先を記述してしまったほうが効率が良さそうです。

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

    <persistence-unit name="OKLabJPASandbox" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>org.oklab.devlink.jpa.Operator</class>
        <properties>
            <property name="eclipselink.target-database" value="Oracle" />
            <property name="eclipselink.logging.level" value="INFO" />
            <property name="eclipselink.jdbc.driver" value="oracle.jdbc.OracleDriver" />
            <property name="eclipselink.jdbc.url" value="jdbc:oracle:thin:@192.168.11.2:1521:XE" />
            <property name="eclipselink.jdbc.password" value="xxPASSxx" />
            <property name="eclipselink.jdbc.user" value="xxUSERxx" />
        </properties>
    </persistence-unit>
</persistence>
カテゴリー: Java タグ: ,

Oracle10g Express EditionのHTTPポート番号変更

2008 年 7 月 19 日 oklab コメントはありません

Oracle9iとTomcat6をインストールした時もポート番号が干渉して再設定が必要でしたが、Oracle10g XE でも同じようです。そのためポート番号を変更するには以下の手順が必要になります。
設定が終わったら、ブラウザでhttp://127.0.0.1:18080/apex/に接続して、ブラウザベースの管理画面が出ることを確認すればよいと思います。Oracle XDBは、XMLのデータ管理に最適化されているようです。

systemユーザで接続。

C:\Documents and Settings\a>sqlplus system@xe
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
に接続されました。

dbms_xdb.gethttpport()で現在のポート番号確認.

SQL> select dbms_xdb.gethttpport(), dbms_xdb.getftpport() from dual;
DBMS_XDB.GETHTTPPORT() DBMS_XDB.GETFTPPORT()
---------------------- ---------------------
                  8080                     0

pl/sqlの書き方で、dbms_xdb.sethttpport関数を呼び出して設定.

SQL> begin dbms_xdb.sethttpport('18080'); end;
  2  /
PL/SQLプロシージャが正常に完了しました。

変更を確認

SQL> select dbms_xdb.gethttpport(), dbms_xdb.getftpport() from dual;
DBMS_XDB.GETHTTPPORT() DBMS_XDB.GETFTPPORT()
---------------------- ---------------------
                 18080                     0
カテゴリー: Java, データベース タグ:

同一マシン内でTomcat6.0とOracle9iを起動すると8080ポートが使えない。

2008 年 3 月 23 日 oklab コメントはありません

Windowsマシンに、Tomcat6.0とOracle9iをインストールしてテストしていたら8080ポートが使えない事がわかりました。どうやらOracle9iインストール時に、カスタマイズせずにウィザードでインストールを行うと、かいろんな機能をインストールするため8080ポートを使っていることがわかりました。

デフォルトのインストール時のウィザードでは、特に何も変更せずにインスタンスを作ると、以下のような機能が組みこまれます。それでOracle9iの場合は、Oracle XMLDBがftpとWebDAVを使うために8080ポートを予約していました。

  • Oracle JVM – Java機能の強化
  • interMedia – 動画や音楽などマルチメディア・データの管理を容易にする機能
  • Oracle Text – テキスト検索に特化した機能
  • Oracle XMLDB – XMLデータベース

再インストールする必要はなく、以下の手順でポート番号を変更できます。

  1. Database Configuration Assistantを起動
  2. データベース内のデータベース・オプションの構成 を選択して次へ
  3. 使用可能なデータベース を選択して次へ、
  4. 標準データベース・オプション を選択するとダイアログが表示される
  5. Oracle XML DB の横の”カスタマイズ” を選択すると上記の画像が表示される
  6. あとは、XMLDBプロトコルをしよう不可にするか、ポートを変更
カテゴリー: Java, データベース タグ: ,