Toon posts:

[Oracle] Job queues die weigeren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Vanaf Oracle 8 is er de mogelijkheid om job queues aan te maken in de database zelf. Nu heb ik hier 3 jobs gedefinieerd in USER_JOBS (met het dbms_job.submit commando). Echter, er verschijnen er maar twee in DBA_JOBS_RUNNING. De laatste wordt niet zichtbaar, ook niet als ik 'm geforceerd start met een dba_jobs.run (jobid ) opdracht.
Wie heeft ervaring met job queues en weet waar dit door veroorzaakt kan worden?
Ik heb in de Oracle docs gezocht, het enige wat ik tegenkwam was een parameter "JOB_QUEUE_PROCESSES" die een bepaalde minimumwaarde moet hebben, maar hoe die zich relateerd tot het aantal jobs is mij niet duidelijk.
Wie kan mij licht geven? ;)

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 23:17

JaQ

http://download-west.orac...erver.817/a76956/jobq.htm

ik ga er vanuit dat je deze al hebt bestudeerd?


is de gestarte job trouwens wel een goed gecompileerd object? Dat heeft mij tenminste een keer een dag gekost...

[ Voor 32% gewijzigd door JaQ op 16-07-2003 14:44 ]

Egoist: A person of low taste, more interested in themselves than in me


Verwijderd

Topicstarter
Ja, die heb ik al gelezen. Die Oracle jobs zijn wel een nieuw verhaal voor mij, dus het is even zoeken.
Het object is gecompileerd. Die job_queue_processes stond op 2, dus ik d8 even dat het daar aan lag, maar ook als er maar één job is draait ie niet.
Nu ga ik maar eens even in het object zelf kijken (hij is wel gecompileerd trouwens), want ik hoor net van een DBA dat hij niets laat zien in DBA_JOBS_RUNNING als het ding snel klaar is of simpelweg crasht. Fijn om te weten :)
Dank!

  • rig0r
  • Registratie: Juli 2001
  • Laatst online: 11-03-2025
Klopt, bovendien kan je gewoon user_jobs queryen om te kijken wanneer je job voor het laatst gedraaid heeft (LAST_DATE), dus dan weet je ook of je job heeft gedraaid of niet :)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SQL> desc user_jobs
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 JOB                                       NOT NULL NUMBER
 LOG_USER                                  NOT NULL VARCHAR2(30)
 PRIV_USER                                 NOT NULL VARCHAR2(30)
 SCHEMA_USER                               NOT NULL VARCHAR2(30)
 LAST_DATE                                          DATE
 LAST_SEC                                           VARCHAR2(8)
 THIS_DATE                                          DATE
 THIS_SEC                                           VARCHAR2(8)
 NEXT_DATE                                 NOT NULL DATE
 NEXT_SEC                                           VARCHAR2(8)
 TOTAL_TIME                                         NUMBER
 BROKEN                                             VARCHAR2(1)
 INTERVAL                                  NOT NULL VARCHAR2(200)
 FAILURES                                           NUMBER
 WHAT                                               VARCHAR2(4000)
 NLS_ENV                                            VARCHAR2(4000)
 MISC_ENV                                           RAW(32)
 INSTANCE                                           NUMBER

Verwijderd

Topicstarter
Mmmkay, daaruit kan ik concluderen dat hij alleen maar draait als ik 'm forceer. dank je! De "total time" loopt ook nauwelijks op.
Dit is allemaal een beetje vreemd gebouwd. Die andere jobs blijven gewoon draaien (een loopje met dbms_lock.sleep in de opgestarte procedure).
Daarnaast kom ik nu net erachter dat die job niks te doen heeft, gek dat hij niet zichtbaar is in dba_jobs_running :+
Oh oh, had ik maar een vak geleerd ;)

Verwijderd

Topicstarter
Beetje laat, maar ik wil jullie alsnog de reden niet onthouden: ik was vergeten te committen 8)7 8)7
/me gaat zich in een hoekje zitten schamen :+
Pagina: 1