この章では、通知イベントを開発する方法について説明します。この章には次の項目があります。
Oracle Identity Managerの様々な操作のカスタム通知を開発するために、通知エンジンは、通知イベントおよび通知テンプレートの作成をサポートしています。
イベントとは、Oracle Identity Managerで発生する操作で、ユーザー作成、リクエスト開始またはユーザーが作成した任意のカスタム・イベントなどが含まれます。イベントは、ビジネス操作の一部として、またはエラー生成を介して生成されます。イベント定義は、イベントを記述するメタデータです。イベントのメタデータを定義するには、機能コンポーネントでサポートされるすべてのイベント・タイプを識別することが重要です。たとえば、スケジューラ・コンポーネントの一部として、スケジュール済ジョブ実行の失敗とスケジューラの停止に対してメタデータを定義できます。ジョブの失敗またはスケジューラの停止のたびにイベントが発生し、イベントに関連付けられている通知が送信されます。
通知テンプレートは、特定のイベントと関連付けられています。テンプレートは、通知の書式の定義に使用します。Oracle Identity Managerでは、事前定義済またはデフォルトの通知テンプレートが提供されます。また、新しい通知テンプレートを作成することもできます。
一部のイベントでは、デフォルトでOracle Identity Managerから通知が送信されます。たとえば、UIまたはリコンシリエーションを介してユーザー名およびパスワードなしでユーザーを作成した場合、ユーザーおよびユーザーのマネージャにログイン資格証明が通知されます。
新しい通知テンプレートを作成して、それを既存のイベントにリンクできます。また、後続の項で説明されるように、通知APIおよびリゾルバ・クラスを使用して、新しい通知イベントを定義できます。カスタム通知の要件の例を次に示します。
ユーザーをロールに割り当てます。ユーザーおよびロールの所有者は通知されます。
リコンシリエーションの一部として財務的に重要な新しいアプリケーション・インスタンスをユーザーに割り当てます。アプリケーション・インスタンスの所有者およびコンプライアンス責任者は、統制外試行の可能性がある場合に通知されます。
通知ログインを構築するには、次の項で説明するように、イベント・メタデータXMLを定義し、リゾルバ・クラスを作成します。
各イベントに対して、通知エンジンで定義される特定のスキーマを持つXMLファイルを作成する必要があります。そのスキーマ(.xsdファイル)に準拠して、イベントの概要を定義するXMLファイルが作成されます。イベントが定義されると、そのイベントの通知テンプレートを定義できます。
イベント・ファイルは通知エンジンで定義されるスキーマ、NotificationEvent.xsdに準拠している必要があります。イベント・ファイルにはイベントに関する基本情報が含まれます。
注意: NotificationEvent.xsdファイルは、MDSのiam\iam-product\features\notification\metadataディレクトリにあります。 |
次にイベントXMLファイルのサンプルを示します。
<?xml version="1.0" encoding="UTF-8"?> <Events xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../metadata/NotificationEvent.xsd"> <EventType name="User Created"> <StaticData> <Attribute DataType="X2-Entity" EntityName="User" Name="Granted User"/> <Attribute DataType="X2-Entity" EntityName="User" Name="Grantee User"/> <Attribute DataType="91-Entity" EntityName="User Group" Name="User Grp"/> </StaticData> <Resolver class="oracle.iam.notification.DemoResolver"> <Param DataType="91-Entity" EntityName="Resource" Name="ResourceInfo"/> </Resolver> </EventType> </Events>
このイベントXMLファイルには、次の要素があります。
EventType name: イベントに通知テンプレートを作成する際に利用できるイベントの名前。
StaticData: 静的パラメータのリスト。ユーザーは、このパラメータ・セットに、データ依存ではないパラメータを追加できます。つまり、この要素では、通知テンプレートが構成されるときに表示される静的データを定義します。たとえば、ユーザー・エンティティはデータ依存ではなく、解決されたときに、すべてのイベント・インスタンスおよび通知テンプレートに対して同じ属性セットを持ちます。
Param DataType: 動的パラメータのリスト。ユーザーは、このパラメータ・セットに、データ依存のパラメータを追加できます。たとえば、Resourceエンティティはデータ依存です。このフィールドに対応する参照がUIに表示されます。ユーザーがこのリソース・オブジェクトを選択すると、そのコールは、ツリー(ユーザーはここからテンプレートで使用する属性を選択します)に表示されるフィールドを取得するために提供されているリゾルバ・クラスに向かいます。
注意: 使用可能なデータとは、テンプレートにトークンとして組み込むことのできる属性のリストです。これらのトークンは、ランタイム時にリゾルバ・クラスによって渡される値と置き換えられます。トークンの例は、Oracle Fusion Middleware Oracle Identity Manager開発者ガイドの通知テンプレートの作成に関する説明の手順7を参照してください。 使用できるデータは、Oracle Fusion Middleware Oracle Identity Manager開発者ガイドの通知テンプレートの作成に関する説明に示されるように、通知テンプレートの作成中にドロップダウン・リストに表示されます。 選択されたデータは単一の属性であり、ユーザーが属性名をコピーして通知テンプレートに貼り付ける際に役立ちます。選択されたデータの属性名は、「使用可能なデータ」リストで選択されたものと同じです。 |
検索でサポートされる動的エンティティは、ユーザー、リソースおよび組織です。これらのエンティティ名をParam DataType要素で指定する必要があります。
注意: <Param DataType>要素は、必須要素ではありません。ただし、使用する際は、エンティティ名にUser、ResourceまたはOrganizationを指定する必要があります。 |
Resolver class: リゾルバ・クラスは、通知ごとに定義する必要があります。これは、通知作成画面で使用できるパラメータと、それらのパラメータを通知の送信時に置き換える方法を定義します。つまり、リゾルバ・クラスは、ランタイム時にデータを動的に解決し、UIに属性を表示します。リゾルバ・クラスの実装の詳細は、「リゾルバ・クラスの作成」を参照してください。
通知サービスは、XMLファイルをMDSから、またはプラグインのMETA-INFフォルダから読み取ります。イベントXMLファイルは、Oracle Enterprise Managerを使用してMDSにアップロードできます。詳細は、「通知イベントのデプロイ」を参照してください。
イベントXMLの推奨の使用方法は、プラグインのMETA-INFディレクトリに配置することです。このプラグインの構造は次のとおりです。
lib/ディレクトリ
PLUG_IN.jar
META_INFディレクトリ
metadata.xml
plugin.xml
プラグインJARの作成およびプラグイン登録ユーティリティを使用したデプロイの詳細は、プラグインの開発に関する説明を参照してください。
通知イベントをデプロイするには、次の手順を実行します。
Oracle Enterprise Managerを使用して、イベント・メタデータXMLファイルをメタデータ・ストア(MDS)にアップロードします。
MDSリポジトリとの間のデータのエクスポートおよびインポートの詳細は、「ユーザーが修正可能なメタデータ・ファイルの移行」を参照してください。
リゾルバ・クラスを含むJARファイルを、Oracle Identity Managerデータベースにアップロードします。リソース・バンドルおよびJARファイルをOracle Identity Managerデータベースにアップロードするためのユーティリティは、OIM_HOME/bin/ディレクトリにあります。
リソース・バンドルおよびJARユーティリティのアップロードの詳細は、「JARおよびリソース・バンドルの移行」を参照してください。
すべてのクラスが、NotificationEventResolverインタフェースを実装する必要があります。このインタフェースは、次のメソッドを提供します。
getAvailableDataメソッド
public List<NotificationAttribute> getAvailableData(String eventType, Map<String, Object> params);
このAPIは、使用可能なデータ変数のリストを戻します。この変数は、テンプレートの作成時や変更時にUI上で使用でき、ユーザーはこの変数を選択して、この変数をテンプレート上のメッセージの一部にすることができます。
eventTypeパラメータは、テンプレートが読み取られるイベント名を指定します。
paramsパラメータは、使用可能なデータがフェッチされるエンティティ名および対応する値を持つマップです。次に例を示します。
map.put("Resource", "laptop");
これは、リゾルバ・クラスで指定したコードに従って、laptopリソースまたはその他のデータに関連付けられたフィールドをフェッチする際に役立ちます。
サンプル・コードを次に示します。
/** * this is a dummy implementation and uses hardcoded values * Implementors need to iterate the XML as found through the event type * params : will have all the specific values that your resolver needs * for instance resource name = "laptop" that you may want here to be resolved through your custon implementation */ List<NotificationAttribute> list = new ArrayList<NotificationAttribute>(); NotificationAttribute subatr = new NotificationAttribute(); subatr.setName("Dynamic1"); subatr.setType("91-Entity"); subatr.setEntityName("Resource"); subatr.setRequired(false); subatr.setSearchable(true); subatr.setSubtree(lookup91EntityMetaData("resource"), params.get(0)); list.add(subatr);
メイン・ツリーにはエンティティ情報が含まれ、サブツリーにはUIで使用可能なすべてのノードが含まれます。サブツリー内の各ノードからの名前フィールドは、UI上で選択できます。
getReplacedDataメソッド
HashMap<String, String> getReplacedData(String eventType, Map<String, Object> params);
このAPIは、通知を送信するときに、実行時にテンプレートで提示された変数の解決された値を戻します。
eventTypeパラメータは、テンプレートが読み取られるイベント名を指定します。
paramsパラメータは、テンプレート内の残りの変数を解決するためにリゾルバで必要とされるベース値(usr_key、obj_keyなど)を持つマップです。
サンプル・コードを次に示します。
HashMap<String, Object> resolvedData = new HashMap<String, Object>(); resolvedData.put("shortDate", new Date()); resolvedData.put("longDate", new Date()); String firstName = getUserFirstname(params.get("usr_key")); resolvedData.put("fname", firstName); resolvedData.put("lname", "lastname"); resolvedData.put("count", "1 million"); return resolvedData;
例: カスタム・リゾルバ・クラスの作成
プロキシとして、追加されたユーザーに電子メール通知を送信するOracle Identity Managerの例を考えてみます。通知電子メールの日付書式を変更する必要がある場合は、次のように実行します。
プロキシを追加する際に、通知用の新しいリゾルバ・クラス・ファイル(AddProxyResolverModifiedなど)を作成します。AddProxyResolverModifiedリゾルバ・クラスのコードは次のとおりです。
package oracle.iam.selfservice.notification; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Date; import java.util.logging.Level; import java.text.ParseException; import java.text.SimpleDateFormat; import static oracle.iam.identity.utils.Constants.PROXY_START_DATE; import static oracle.iam.identity.utils.Constants.PROXY_END_DATE; import static oracle.iam.identity.utils.Constants.PROXY_ORIGINAL_USR_NAME; import static oracle.iam.identity.utils.Constants.PROXY_ORIG_USER_LOGIN; import static oracle.iam.identity.utils.Constants.FIRSTNAME; import static oracle.iam.identity.utils.Constants.LASTNAME; import oracle.iam.notification.impl.NotificationEventResolver; import oracle.iam.notification.vo.NotificationAttribute; /* $Header: iam/iam-product/features/selfservice/src/main/oracle/iam/selfservice/notification/AddProxyResolver.java /main/2 2012/02/13 20:46:50 shaimish Exp $ */ /* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. */ /* DESCRIPTION <short description of component this file declares/defines> PRIVATE CLASSES <list of private classes defined - with one-line descriptions> NOTES <other useful comments, qualifications, etc.> MODIFIED (MM/DD/YY) supandit 04/19/10 - Creation */ /** * @version $Header: iam/iam-product/features/selfservice/src/main/oracle/iam/selfservice/notification/AddProxyResolver.java /main/2 2012/02/13 20:46:50 shaimish Exp $ * @author supandit * @since release specific (what release of product did this appear in) */ public class AddProxyResolverModified implements NotificationEventResolver { public List<NotificationAttribute> getAvailableData(String eventType, Map<String, Object> params) throws Exception { return null; } public HashMap<String, Object> getReplacedData(String eventType, Map<String, Object> params)throws Exception { SimpleDateFormat sdfSource = new SimpleDateFormat("MMMMMMMM DD,yyyy HH:mm:ss a z"); SimpleDateFormat sdfDestination = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z"); Date sdate = null; Date edate = null; HashMap<String, Object> resolvedData = new HashMap<String, Object>(); resolvedData.put("firstName",params.get(FIRSTNAME)); resolvedData.put("lastName",params.get(LASTNAME)); resolvedData.put("originalusername",params.get(PROXY_ORIG_USER_LOGIN)); String proxy_startDate = (String )params.get(PROXY_START_DATE); System.out.println("proxy_startDate : " + proxy_startDate); String proxy_endDate = (String) params.get(PROXY_END_DATE); System.out.println("proxy_endDate : " + proxy_endDate); sdate = sdfSource.parse(proxy_startDate); edate = sdfSource.parse(proxy_endDate); proxy_startDate = sdfDestination.format(sdate); System.out.println("proxy_startDate : " + proxy_startDate); proxy_endDate = sdfDestination.format(edate); System.out.println("proxy_endDate : " + proxy_endDate); resolvedData.put("proxystartdate", proxy_startDate); resolvedData.put("proxyenddate", proxy_endDate); return resolvedData; } }
これにより、通知電子メールの書式が変更されます。元の書式は次のとおりです。
September 13, 2012 7:00:00 AM GMTからSeptember 14, 2012 7:00:00 AM GMTまでのtestuser1 testuser1 [TESTUSER1]のプロキシを作成しました。
変更後は次のとおりです。
Fri, 13 Jan 2012 23:00:00 -0800からSat, 14 Jan 2012 23:00:00 -0800までのtestuser1 testuser1 [TESTUSER1]のプロキシを作成しました。
プラグインZIPファイルをOIM_HOME/server/plugins/にコピーします。
次のコードを含むAddProxyUser.xmlを作成します。
<?xml version='1.0' encoding='UTF-8'?> <Events xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../notification/metadata/NotificationEvent.xsd" xmlns="http://xmlns.oracle.com/oim/notificationevent"> <EventType name="AddProxy"> <Resolver class="oracle.iam.selfservice.notification.AddProxyResolverModified"> <Param Name="AddProxy" DataType="X2-Entity" EntityName="AddProxy"/> </Resolver> </EventType> </Events>
MDSで宣言されている元のリゾルバが優先されます。したがって、AddProxyUser.xmlファイルを/metadata/iam-features-selfservice/notification/にあるMDSにインポートします。
リゾルバ・クラスの作成後、プラグインJARファイルにパッケージ化し、プラグイン登録ユーティリティを使用してJARファイルをデプロイします。プラグインJARの作成およびプラグイン登録ユーティリティを使用したデプロイの詳細は、プラグインの開発に関する説明を参照してください。
イベント・メタデータXMLを定義し、リゾルバ・クラスを作成することで、通知ロジックを構築した後、Oracle Identity Managerの特定の操作で通知ロジックをコールできます。これは、イベント・ハンドラを使用することで実行できます。
通知の起動ロジックは、カスタム・イベント・ハンドラとして構築されます。カスタム・イベント・ハンドラは、関連する操作の適切なステージに構成されます。カスタム・イベントは、プラグイン登録ユーティリティを使用してデプロイされます。イベント・ハンドラの開発の詳細は、「イベント・ハンドラの開発」を参照してください。.
通知のインフラストラクチャレベルの構成の作成には、次のオプションがあります。
Oracle Identity Managerでのインフラストラクチャレベルの構成の作成: 電子メール・サーバーは、Oracle Identity Managerのデフォルトのモードとしてサポートされています。
SOAでのインフラストラクチャレベルの構成の作成: SOAですべての通知モードがサポートされています。したがって、SOAでユーザー・メッセージング・サービス(UMS)を使用するように、通知サービスを構成できます。
通知サービスの構成の詳細は、Oracle Fusion Middleware Oracle Identity Manager開発者ガイドの通知プロバイダの管理に関する説明を参照してください。
注意: Design Consoleの「電子メール定義」フォームを使用したプロビジョニング・プロセスで使用する電子メール定義を構成できます。.詳細は、「「電子メール定義」フォーム」を参照してください。 |
通知の構成後、「診断ダッシュボード」で使用可能な「通知構成テスト」を使用して、構成をテストできます。そのためには、「診断ダッシュボード」コンソールからこのテスト用のパラメータとして有効なユーザー・ログインを指定します。
有効な電子メールIDが指定されたログインに存在し、テストの結果が図33-1と同様である場合、ダミーのユーザー作成メールが送信されます。
この項では、UMS構成で発生する可能性のある次の問題および対応する解決策について説明します。
問題
Oracle Identity Managerログに次のエラーが表示されます。
<Jun 13, 2012 12:53:25 AM PDT> <Warning> <oracle.adfinternal.view.faces.renderkit.rich.SelectItemUtils> <ADF_FACES-30118> <No help provider found for helpTopicId=create_user.> java.net.MalformedURLException: For input string: "SOA_PORT" at java.net.URL.<init>(URL.java:601) at java.net.URL.<init>(URL.java:464) at java.net.URL.<init>(URL.java:413) at java.net.URI.toURL(URI.java:1081) at oracle.j2ee.ws.common.transport.HttpTransport.transmit(HttpTransport.java:61) at oracle.j2ee.ws.common.async.MessageSender.call(MessageSender.java:64) at oracle.j2ee.ws.common.async.Transmitter.transmitSync(Transmitter.java:134) at oracle.j2ee.ws.common.async.Transmitter.transmit(Transmitter.java:90) at oracle.j2ee.ws.common.async.RequestorImpl.transmit(RequestorImpl.java:273) at oracle.j2ee.ws.common.async.RequestorImpl.invoke(RequestorImpl.java:94) at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:811) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.synchronousInvocationWithRetry(OracleDispatchImpl.java:235) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.invoke(OracleDispatchImpl.java:106) at oracle.j2ee.ws.client.jaxws.WsClientProxyInvocationHandler.invoke(WsClientProxyInvocationHandler.java:254) at $Proxy422.send(Unknown Source) at oracle.ucs.messaging.ws.MessagingClient.send(MessagingClient.java:299) at oracle.iam.notification.provider.UMSEmailServiceProvider.sendMessage(UMSEmailServiceProvider.java:188) at oracle.iam.notification.provider.UMSEmailServiceProvider.sendNotification(UMSEmailServiceProvider.java:173) at oracle.iam.notification.impl.NotificationServiceImpl.sendEmailNotification(NotificationServiceImpl.java:601) at oracle.iam.notification.impl.NotificationServiceImpl.notify(NotificationServiceImpl.java:540) at oracle.iam.notification.impl.NotificationServiceImpl.notify(NotificationServiceImpl.java:271) <Jun 13, 2012 12:53:31 AM PDT> <Error> <oracle.iam.notification.impl> <BEA-000000> <Provider UMSEmailServiceProvider has encountered exception : null> <Jun 13, 2012 12:53:31 AM PDT> <Error> <oracle.iam.notification.impl> <BEA-000000> <Sending notification with Provider UMSEmailServiceProvider has encountered exception : Error occured while Sending Notification through Provider UMSEmailServiceProvider : null> <Jun 13, 2012 12:53:31 AM PDT> <Error> <oracle.iam.notification.impl> <BEA-000000> <Sending notification with Provider UMSEmailServiceProvider detailed exception : null>
解決策
これは、不正なURLが原因のエラーです。この問題を解決するには、Enterprise Manager (EM)のSOA_PORTおよびSOA_HOSTに正しい値を指定します。
問題
Oracle Identity Managerログに次のエラーが表示されます。
<Jun 13, 2012 3:14:14 AM PDT> <Error> <oracle.iam.notification.impl> <BEA-000000> <Provider UMSEmailServiceProvider has encountered exception : javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Bad response: 404 Not Found from url http://myhost.mycompany.com:8003/ucs/messaging/webservice> <Jun 13, 2012 3:14:14 AM PDT> <Error> <oracle.iam.notification.impl> <BEA-000000> <Sending notification with Provider UMSEmailServiceProvider has encountered exception : Error occured while Sending Notification through Provider UMSEmailServiceProvider : javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Bad response: 404 Not Found from url http://myhost.mycompany.com:8003/ucs/messaging/webservice> <Jun 13, 2012 3:14:14 AM PDT> <Error> <oracle.iam.notification.impl> <BEA-000000> <Sending notification with Provider UMSEmailServiceProvider detailed exception : javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Bad response: 404 Not Found from url http://myhost.mycompany.com:8003/ucs/messaging/webservice>
解決策
これは、不正なURLが原因のエラーです。この問題を解決するには、EMに正しいURLを指定します。
問題
次のエラーが生成されます。
<Jun 13, 2012 3:39:14 AM PDT> <Error> <oracle.sdp.messaging.driver.email> <SDP-25700> <An unexpected exception was caught. javax.mail.MessagingException: Unknown SMTP host: abc.oracle.com; nested exception is: java.net.UnknownHostException: abc.oracle.com at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1389) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412) at javax.mail.Service.connect(Service.java:310) at javax.mail.Service.connect(Service.java:169) at javax.mail.Service.connect(Service.java:118) at oracle.sdpinternal.messaging.driver.email.EmailDriver.send(EmailDriver.java:780) at oracle.sdpinternal.messaging.driver.email.EmailManagedConnection.send(EmailManagedConnection.java:50) at oracle.sdpinternal.messaging.driver.DriverConnectionImpl.send(DriverConnectionImpl.java:41) at oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean.onMessage(DriverDispatcherBean.java:296) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy349.onMessage(Unknown Source) at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:583) at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:486) at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:388) at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659) at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345) at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821) at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115) at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) Caused By: java.net.UnknownHostException: abc.oracle.com at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:564) at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:163) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412) at javax.mail.Service.connect(Service.java:310) at javax.mail.Service.connect(Service.java:169) at javax.mail.Service.connect(Service.java:118) at oracle.sdpinternal.messaging.driver.email.EmailDriver.send(EmailDriver.java:780) at oracle.sdpinternal.messaging.driver.email.EmailManagedConnection.send(EmailManagedConnection.java:50) at oracle.sdpinternal.messaging.driver.DriverConnectionImpl.send(DriverConnectionImpl.java:41) at oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean.onMessage(DriverDispatcherBean.java:296) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy349.onMessage(Unknown Source) at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:583) at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:486) at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:388) at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659) at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345) at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821) at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115) at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) >
解決策
この問題は、送信サーバーの電子メール・ドライバの誤ったプロパティが原因で発生します。この問題を修正するには、正しいサーバー・アドレスを指定し、サーバーが実行していることを確認します。
問題
次のエラーが生成されます。
<Jun 13, 2012 3:53:20 AM PDT> <Error> <oracle.sdp.messaging.driver.email> <SDP-25700> <An unexpected exception was caught. javax.mail.MessagingException: Could not connect to SMTP host: stbeehive.oracle.com, port: 25; nested exception is: java.net.ConnectException: Connection refused at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412) at javax.mail.Service.connect(Service.java:310) at javax.mail.Service.connect(Service.java:169) at javax.mail.Service.connect(Service.java:118) at oracle.sdpinternal.messaging.driver.email.EmailDriver.send(EmailDriver.java:780) at oracle.sdpinternal.messaging.driver.email.EmailManagedConnection.send(EmailManagedConnection.java:50) at oracle.sdpinternal.messaging.driver.DriverConnectionImpl.send(DriverConnectionImpl.java:41) at oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean.onMessage(DriverDispatcherBean.java:296) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy345.onMessage(Unknown Source) at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:583) at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:486) at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:388) at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659) at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345) at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821) at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115) at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) Caused By: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:564) at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:163) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412) at javax.mail.Service.connect(Service.java:310) at javax.mail.Service.connect(Service.java:169) at javax.mail.Service.connect(Service.java:118) at oracle.sdpinternal.messaging.driver.email.EmailDriver.send(EmailDriver.java:780) at oracle.sdpinternal.messaging.driver.email.EmailManagedConnection.send(EmailManagedConnection.java:50) at oracle.sdpinternal.messaging.driver.DriverConnectionImpl.send(DriverConnectionImpl.java:41) at oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean.onMessage(DriverDispatcherBean.java:296) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy345.onMessage(Unknown Source) at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:583) at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:486) at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:388) at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659) at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345) at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821) at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115) at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) >
解決策
これは、SOAサーバーのエラーです。この問題を修正するには、送信サーバー・ポートおよび送信サーバー・セキュリティが適切であることを確認します。
問題
次のエラーが生成されます。
javax.mail.AuthenticationFailedException
または
<Jun 13, 2012 4:30:41 AM PDT> <Error> <oracle.sdp.messaging.driver.email> <SDP-25700> <An unexpected exception was caught. javax.mail.MessagingException: Exception reading response; nested exception is: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1611) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1369) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412) at javax.mail.Service.connect(Service.java:310) at javax.mail.Service.connect(Service.java:169) at javax.mail.Service.connect(Service.java:118) at oracle.sdpinternal.messaging.driver.email.EmailDriver.send(EmailDriver.java:780) at oracle.sdpinternal.messaging.driver.email.EmailManagedConnection.send(EmailManagedConnection.java:50) at oracle.sdpinternal.messaging.driver.DriverConnectionImpl.send(DriverConnectionImpl.java:41) at oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean.onMessage(DriverDispatcherBean.java:296) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy349.onMessage(Unknown Source) at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:583) at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:486) at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:388) at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659) at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345) at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821) at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115) at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) Caused By: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1731) at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:241) at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:235) at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1206) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:925) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1170) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:785) at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75) at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read(BufferedInputStream.java:237) at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:88) at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1589) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1369) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412) at javax.mail.Service.connect(Service.java:310) at javax.mail.Service.connect(Service.java:169) at javax.mail.Service.connect(Service.java:118) at oracle.sdpinternal.messaging.driver.email.EmailDriver.send(EmailDriver.java:780) at oracle.sdpinternal.messaging.driver.email.EmailManagedConnection.send(EmailManagedConnection.java:50) at oracle.sdpinternal.messaging.driver.DriverConnectionImpl.send(DriverConnectionImpl.java:41) at oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean.onMessage(DriverDispatcherBean.java:296) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy349.onMessage(Unknown Source) at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:583) at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:486) at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:388) at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659) at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345) at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821) at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115) at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) Caused By: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:323) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:217) at sun.security.validator.Validator.validate(Validator.java:218) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249) at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1185) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:925) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1170) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:785) at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75) at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read(BufferedInputStream.java:237) at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:88) at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1589) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1369) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412) at javax.mail.Service.connect(Service.java:310) at javax.mail.Service.connect(Service.java:169) at javax.mail.Service.connect(Service.java:118) at oracle.sdpinternal.messaging.driver.email.EmailDriver.send(EmailDriver.java:780) at oracle.sdpinternal.messaging.driver.email.EmailManagedConnection.send(EmailManagedConnection.java:50) at oracle.sdpinternal.messaging.driver.DriverConnectionImpl.send(DriverConnectionImpl.java:41) at oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean.onMessage(DriverDispatcherBean.java:296) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy349.onMessage(Unknown Source) at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:583) at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:486) at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:388) at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659) at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345) at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821) at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115) at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) Caused By: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:318) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:217) at sun.security.validator.Validator.validate(Validator.java:218) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249) at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1185) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:925) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1170) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:785) at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75) at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read(BufferedInputStream.java:237) at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:88) at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1589) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1369) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412) at javax.mail.Service.connect(Service.java:310) at javax.mail.Service.connect(Service.java:169) at javax.mail.Service.connect(Service.java:118) at oracle.sdpinternal.messaging.driver.email.EmailDriver.send(EmailDriver.java:780) at oracle.sdpinternal.messaging.driver.email.EmailManagedConnection.send(EmailManagedConnection.java:50) at oracle.sdpinternal.messaging.driver.DriverConnectionImpl.send(DriverConnectionImpl.java:41) at oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean.onMessage(DriverDispatcherBean.java:296) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy349.onMessage(Unknown Source) at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:583) at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:486) at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:388) at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659) at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345) at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821) at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115) at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) >
解決策
次の項目を必ず実行してください。
ユーザー名およびパスワードが正しく指定されていること。
DemoTrust.jksのエンティティがsetDomainEnvスクリプトから削除されていること。
アプリケーション・サーバーが正しく構成されていること。
証明書の交換が完了していること。
問題
Enterprise Manager (EM) Usermessagingserverメッセージ・ステータスでは、電子メールが無効であっても、ステータス・コードが常にDELIVERY_TO_GATEWAY_SUCCESSになります。ユーザーが電子メールを受信しない場合でも、このステータス・コードが更新されて失敗になることはありません。
解決策
ドライバ構成の次の受信設定が適切に構成されていることを確認します。
MailAccessProtocol
ReceiveFolder
IncomingMailServer
IncomingMailServerPort
IncomingMailServerSSL
IncomingMailIDs
IncomingUserIDs
IncomingUserPasswords
ImapAuthPlainDisable
詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のOracle User Messaging Serviceの構成に関する項を参照してください。