Skip to Main Content

ORDS, SODA & JSON in the Database

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

ORDS 19.4 is breaking

Test2Jan 5 2020 — edited Aug 10 2020

Hello,

@"Kris Rice-Oracle" @"thatJeffSmith-Oracle",

After upgrading ORDS from 18.4 to 19.4, ORDS is breaking every now and then, and we started getting this error

Screen Shot 2020-01-05 at 6.40.44 PM.png

Env: TomCat9. Windows server 2016, used mainly for APEX 19.2 on Oracle 18.3 SE

05-Jan-2020 11:56:03.542 INFO [Catalina-utility-1] . Oracle REST Data Services initialized

Oracle REST Data Services version : 19.4.0.r3521226

Oracle REST Data Services server info: Apache Tomcat/9.0.14

05-Jan-2020 11:56:04.299 INFO [Catalina-utility-1] org.apache.catalina.core.StandardContext.reload Reloading Context with name [] is completed

05-Jan-2020 11:56:05.499 SEVERE [http-nio-8080-exec-40] oracle.dbtools.common.di.JDKLogSink.log No provider found for: requires oracle.dbtools.http.filters.Filters

oracle.dbtools.common.di.MissingDependencyException: No provider found for: requires oracle.dbtools.http.filters.Filters

at oracle.dbtools.common.di.DependencyInjectionException.convert(DependencyInjectionException.java:56)

at oracle.dbtools.common.di.Services.acquire(Services.java:160)

at oracle.dbtools.http.entrypoint.EntryPoint.service(EntryPoint.java:79)

at oracle.dbtools.http.entrypoint.EntryPointServlet.service(EntryPointServlet.java:117)

at oracle.dbtools.entrypoint.WebApplicationRequestEntryPoint.service(WebApplicationRequestEntryPoint.java:50)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:239)

at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:215)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)

at org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:542)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)

at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:679)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)

Caused by: oracle.dbtools.injector.impl.MissingDependencyException: No provider found for: requires oracle.dbtools.http.filters.Filters

at oracle.dbtools.injector.impl.MissingDependencyException.noProvider(MissingDependencyException.java:75)

at oracle.dbtools.injector.impl.MissingDependencyException.noProvider(MissingDependencyException.java:62)

at oracle.dbtools.injector.impl.InstanceProviderAdapter.get(InstanceProviderAdapter.java:30)

at oracle.dbtools.common.di.Services.acquire(Services.java:158)

... 33 more

Caused by: oracle.dbtools.plugin.api.types.TypeDependencyNotAvailableException: The type: (provides oracle.dbtools.http.filters.Filters) could not be instantiated due to the following error: No provider found for: requires oracle.dbtools.rest.resource.modules.xml.StaticModules

at oracle.dbtools.plugin.api.types.TypeDependencyNotAvailableException.from(TypeDependencyNotAvailableException.java:92)

at oracle.dbtools.plugin.api.di.ResolvedInstances.get(ResolvedInstances.java:44)

at oracle.dbtools.injector.impl.InstanceProviderAdapter.get(InstanceProviderAdapter.java:28)

... 34 more

Caused by: oracle.dbtools.injector.impl.MissingDependencyException: No provider found for: requires oracle.dbtools.rest.resource.modules.xml.StaticModules

at oracle.dbtools.injector.impl.MissingDependencyException.noProvider(MissingDependencyException.java:75)

at oracle.dbtools.injector.impl.MissingDependencyException.noProvider(MissingDependencyException.java:62)

at oracle.dbtools.injector.impl.DependencyInjectionException.instantationError(DependencyInjectionException.java:107)

at oracle.dbtools.injector.impl.ServiceFactory.instantiate(ServiceFactory.java:122)

at oracle.dbtools.injector.impl.ServiceFactory.access$300(ServiceFactory.java:29)

at oracle.dbtools.injector.impl.ServiceFactory$ResolvedDependenciesFactory.newInstance(ServiceFactory.java:366)

at oracle.dbtools.injector.impl.ServiceFactory.instantiate(ServiceFactory.java:102)

at oracle.dbtools.injector.impl.ServiceFactory.access$200(ServiceFactory.java:29)

at oracle.dbtools.injector.impl.ServiceFactory$InstanceFactory.newInstance(ServiceFactory.java:348)

at oracle.dbtools.injector.impl.Singletons.newInstance(Singletons.java:121)

at oracle.dbtools.injector.impl.SingletonsBase.get(SingletonsBase.java:35)

at oracle.dbtools.injector.impl.SingletonsBase.get(SingletonsBase.java:49)

at oracle.dbtools.injector.impl.ServiceFactory.resolveDependencies(ServiceFactory.java:244)

at oracle.dbtools.injector.impl.ServiceFactory.instantiate(ServiceFactory.java:97)

at oracle.dbtools.injector.impl.ServiceFactory.access$200(ServiceFactory.java:29)

at oracle.dbtools.injector.impl.ServiceFactory$InstanceFactory.newInstance(ServiceFactory.java:348)

at oracle.dbtools.injector.impl.Singletons.newInstance(Singletons.java:121)

at oracle.dbtools.injector.impl.SingletonsBase.get(SingletonsBase.java:35)

at oracle.dbtools.injector.impl.SingletonsBase.get(SingletonsBase.java:49)

at oracle.dbtools.injector.impl.ServiceFactory.newInstance(ServiceFactory.java:55)

at oracle.dbtools.injector.impl.InjectorImpl.select(InjectorImpl.java:183)

at oracle.dbtools.plugin.api.di.InstanceLocator.select(InstanceLocator.java:42)

... 34 more

Caused by: oracle.dbtools.plugin.api.types.TypeDependencyNotAvailableException: The type: (provides oracle.dbtools.rest.resource.modules.xml.StaticModules) could not be instantiated due to the following error: javax.xml.transform.TransformerException: java.lang.IllegalArgumentException: type: -1

at oracle.dbtools.plugin.api.types.TypeDependencyNotAvailableException.from(TypeDependencyNotAvailableException.java:92)

at oracle.dbtools.plugin.api.types.TypeDependencyNotAvailableException.from(TypeDependencyNotAvailableException.java:40)

at oracle.dbtools.plugin.api.types.TypeDependencies.newInstance(TypeDependencies.java:154)

at oracle.dbtools.plugin.api.types.TypeReflections$ReflectiveInstantiator.load(TypeReflections.java:568)

at oracle.dbtools.injector.impl.ServiceFactory.instantiate(ServiceFactory.java:119)

... 52 more

Caused by: java.lang.IllegalArgumentException: javax.xml.transform.TransformerException: java.lang.IllegalArgumentException: type: -1

at oracle.dbtools.rest.resource.modules.xml.Content.clone(Content.java:75)

at oracle.dbtools.rest.resource.modules.xml.Content.access$100(Content.java:18)

at oracle.dbtools.rest.resource.modules.xml.Content$Builder.xml(Content.java:143)

at oracle.dbtools.rest.resource.modules.xml.Handler.content(Handler.java:85)

at oracle.dbtools.rest.resource.modules.xml.Handler.content(Handler.java:22)

at oracle.dbtools.rest.resource.modules.xml.XMLResourceModuleSet$Builder.buildPathTemplates(XMLResourceModuleSet.java:150)

at oracle.dbtools.rest.resource.modules.xml.XMLResourceModuleSet$Builder.read(XMLResourceModuleSet.java:213)

at oracle.dbtools.rest.resource.modules.xml.XMLResourceModuleSet$Builder.add(XMLResourceModuleSet.java:94)

at oracle.dbtools.rest.resource.modules.xml.StaticModules.add(StaticModules.java:77)

at oracle.dbtools.rest.resource.modules.xml.StaticModules.<init>(StaticModules.java:49)

at java.lang.invoke.MethodHandle.invokeWithArguments(Unknown Source)

at oracle.dbtools.plugin.api.types.TypeDependencies.newInstance(TypeDependencies.java:151)

... 54 more

Caused by: javax.xml.transform.TransformerException: java.lang.IllegalArgumentException: type: -1

at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)

at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)

at oracle.dbtools.common.xml.JAXPBase.clone(JAXPBase.java:61)

at oracle.dbtools.rest.resource.modules.xml.Content.clone(Content.java:73)

... 65 more

Caused by: java.lang.IllegalArgumentException: type: -1

at com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.getNodeObject(Unknown Source)

at com.sun.org.apache.xerces.internal.dom.DeferredElementNSImpl.synchronizeData(Unknown Source)

at com.sun.org.apache.xerces.internal.dom.ElementImpl.getNodeName(Unknown Source)

at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)

at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)

at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)

at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown Source)

... 69 more

Comments

907441
追記です。

[調査した事項]

3)alert_orcl.log の確認

インポート時間前後では、次のログが多発している程度で、目立ったエラーはありません。

Mon Dec 26 12:05:43 2011
Private_strands 7 at log switch
Thread 1 advanced to log sequence 40
Current log# 3 seq# 40 mem# 0: C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO03.LOG
Mon Dec 26 12:05:54 2011
Private_strands 7 at log switch
Thread 1 advanced to log sequence 41
Current log# 1 seq# 41 mem# 0: C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO01.LOG
Mon Dec 26 12:06:09 2011
Private_strands 7 at log switch
Thread 1 advanced to log sequence 42
Current log# 2 seq# 42 mem# 0: C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO02.LOG

上記が多発していることから、REDOログがいっぱいになっていることを疑った次第です。


4)インポートログの確認

コマンド実行時に指定したインポートログに、以下のエラーが出力されておりました。

IMP-00017: 次の文は、Oracleエラー2264で失敗しました:
"ALTER TABLE "HOGEHOGE" ADD CONSTRAINT "SYS_C006678" PRIMARY KEY "
"("AAA", "BBB", "CCC", "DDD", "EEE","FFF", "GGG", "HHH, "III", "JJJ", "KKK", "LLL")
"USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 S"
"TORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TAB"
"LESPACE "USERS" LOGGING ENABLE "
IMP-00003: Oracleエラー2264が発生しました。
ORA-02264: 既存の制約によってすでに使用されている名前です。

※一部、テーブル名やフィールド名等はマスクさせていただいております。

ただ、インポートそのものは成功しているようなので影響が無いような気もしていますが、まだ調査中です。

引き続きよろしくお願いいたします
hamadeguchi
・tables指定で最後のテーブルのみインポートして成功しますか?
・SHOW=Y ROWS=Nでログを出力してみておかしなところはありませんか?

など確認してみてください。

また、エラーメッセージダンプファイルに入っているテーブルの
プライマリーキーに対し自動生成されたものが
インポート先既存オブジェクトに対し自動生成された制約とバッティングしているものですので
テーブル作成スクリプトががあれば空テーブルを作っておいてIGNORE=Yでインポートするのがおすすめです。
907441
hamadeguchi様
アドバイスありがとうございます。

ご提供いただいた情報を基に、いくつか検証を進めました。

1)SHOW=Yでの実行
dmpの中を確認しましたが、特に問題がありそうな項目はありませんでした。
インポート時にエラーが発生していたCONSTRAINTですが、CREATE UNIQUE INDEXでINDEXを作成した後に、先のALTER文でテーブルに制約を追加しているだけです。
特に失敗する要素は見当たらないのですが、何故かエラーで止まります。


2)ROWS=Nでの実行
データインポート無しで検証を行いましたが、同じ現象が発生しました。
データインポート有りの時と同じ状態(viewやprocedureが一部分だけ作成される)でインポートが停止してしまいます。
データ量が原因なわけではありませんでした。


3)IGNORE=Yでの実行
エラー無視で実行しても、同じ現象で停止します。
ご提供いただいた情報の通り、事前にテーブルを作成してから実行しても同じ結果でした。


REDOログのサイズや数を拡張せずに、ROWS=Nでインポートしても同じ結果になりますので、「REDOログがいっぱいになった」という原因は除外しております。

現状、怪しいのは発生しているエラーで、VIEWやPROCEDUREが上手く生成されない可能性を考えておりますので、
次は、CONSTRAINTS=N や INDEXES=N を指定して実行検証中です。

その他、何か情報がございましたら、引き続きよろしくお願いいたします。
Blueloco
停止している(ように見える)状態で、V$SESSIONから、実際待機が発生しているかを確認してみては?
インポートのセッションは、確か PROGRAM 列が「imp」となっていたかと思いますので、それで絞れるかと思います。

例)
select sid, serial#, program
from v$session
where program like '%imp%';

select event, seq#, wait_time, seconds_in_wait
from v$session
where sid = <SID>
  and serial# = <SERIAL#>;
後者のSQLを数秒おきに実行し、SEQ#列の値が変わらないままSECONDS_IN_WAIT列が増えていっている状況なら、そのイベントで待機していることを示します。
907441
Blueloco様
アドバイスありがとうございます。

ご提供いただいた情報から、インポートの状況を確認したところ、新たな状況が発覚いたしました。
SECONDS_IN_WAIT列の値を監視してみたところ、最初は、値が増加していくだけでしたのでプロセスが待機しているのかと思いきや、110を超えたあたりで0に戻りました。
つまり、何かのプロセスが完了したことを意味したと思い、OBJECT BROWSER経由でOBJECTの状況を確認しました。

インポートされたはずのテーブルが、SECONDS_IN_WAIT列の値が0に戻る度に1つずつ減っていっています。
(確認時は495個あったテーブルが、494個に減っていました。)
逆にSNAPSHOTが1つずつ増えていっています。
(当初確認時は5個あったSNAPSHOTが、6個に増えていました。)

impコマンドの詳細な実行方法については明るくないのですが、impコマンドは、SNAPSHOTを一度テーブルとしてインポートしてからSNAPSHOTに張り替える(?)のでしょうか。
そもそも、SNAPSHOTのインポートは膨大に時間がかかってしまうものなのでしょうか。
SNAPSHOTのインポートについてもう少し調査を進めてみます。


ちなみに、新たな情報として、dmpファイルをエクスポートした際のコマンドは以下になります。

exp direct=y compress=y userid=xxx/xxx file=[export_file] log=[log_file]

引き続きよろしくお願いいたします。
907441
あれから色々調査しましたが、やはりマテリアライズドビューのインポートに時間がかかっているようです。
また、インポートに成功したマテリアライズドビューは、データ内容を参照することができません。

上記結果が判明しましたので、現場で別途対策を検討することになりました。
※今回の件は、サーバ移行にともなうOracleのデータベース移行が目的でした。
 VIEWやPROCEDURE等は、dmp移行を使用せず、スクリプトで再生成することになりました。
hamadeguchi様
Blueloco様
お二人の助言で、上記結果を得ることができましたので非常に助かりました。
ありがとうございます。

以上で、当スレッドをクローズとさせていただきます。
1 - 6

Post Details

Added on Jan 5 2020
49 comments
7,803 views