Avatar billede tigertool Nybegynder
23. maj 2009 - 21:34 Der er 8 kommentarer og
1 løsning

JBoss :: Scheduler xml

Hej,

Jeg har fået sat et EJB3 projekt op i Eclipse. Jeg benytter hibernate og MySQL til mine entity-beans.

Jeg har nu brug for at køre noget kode hvert 15. min - derfor har jeg forsøgt at opsætte en Scheduler (org.jboss.varia.scheduler.Schedulable).

Jeg har tilføjet følgende i filen scheduler-service.xml
<?xml version="1.0" encoding="UTF-8"?>
<server>
    <mbean code="org.jboss.varia.scheduler.Scheduler" name=":service=My-Scheduler">
        <attribute name="StartAtStartup">true</attribute>
        <attribute name="SchedulableClass">dk.tigertool.test.ScheduleTest</attribute>
        <attribute name="SchedulableArguments"></attribute>
        <attribute name="SchedulableArgumentTypes"></attribute>
        <attribute name="InitialStartDate">0</attribute>
        <attribute name="SchedulePeriod">20000</attribute>
        <attribute name="InitialRepetitions">-1</attribute>
    </mbean>
</server>

- hvilket kører perform på ScheduleTest hver 20 sec - som jeg fortventede.
Men nu virker min hibernate og MySQL ikke længere. Hvis jeg fjerner scheduler-service.xml, så virker hibernate og MySQL igen.

Jeg benytter filen mysql-ds.xml med dette indhold:
<?xml version="1.0" encoding="UTF-8"?>

<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/tigertool</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>SYYYYYHHHHHHHH</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <metadata>
      <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

Så lige nu kan jeg enten få mine entity-beans til at virke, eller min scheduler.

Jeg antager at fejlen ligger i min XML, derfor har jeg ikke postet kode.
Avatar billede tigertool Nybegynder
23. maj 2009 - 21:37 #1
Fejlen jeg får når begge XML-filer er i projektet er:

2009-05-23 21:20:54,531 WARN  [org.jboss.system.server.profileservice.hotdeploy.HDScanner] (HDScanner) Failed to process changes
org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):

DEPLOYMENTS MISSING DEPENDENCIES:
  Deployment "jboss.j2ee:ear=TigerTool.ear,jar=TigerToolServer.jar,name=ServerFacadeBean,service=EJB3" is missing the following dependencies:
    Dependency "<UNKNOWN jboss.j2ee:ear=TigerTool.ear,jar=TigerToolServer.jar,name=ServerFacadeBean,service=EJB3>" (should be in state "Described", but is actually in state "** UNRESOLVED Demands 'persistence.unit:unitName=TigerTool.ear/TigerToolServer.jar#ServerBean' **")
  Deployment "persistence.unit:unitName=TigerTool.ear/TigerToolServer.jar#ServerBean" is missing the following dependencies:
    Dependency "jboss.jca:name=MySqlDS,service=DataSourceBinding" (should be in state "Create", but is actually in state "** NOT FOUND Depends on 'jboss.jca:name=MySqlDS,service=DataSourceBinding' **")

DEPLOYMENTS IN ERROR:
  Deployment "<UNKNOWN jboss.j2ee:ear=TigerTool.ear,jar=TigerToolServer.jar,name=ServerFacadeBean,service=EJB3>" is in error due to the following reason(s): ** UNRESOLVED Demands 'persistence.unit:unitName=TigerTool.ear/TigerToolServer.jar#ServerBean' **
  Deployment "jboss.jca:name=MySqlDS,service=DataSourceBinding" is in error due to the following reason(s): ** NOT FOUND Depends on 'jboss.jca:name=MySqlDS,service=DataSourceBinding' **

    at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:863)
    at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:806)
    at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:293)
    at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:221)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)
Avatar billede arne_v Ekspert
24. maj 2009 - 03:52 #2
En bunke spørgsmål:

1) Hvad er der ellers i startup loggen omkring MySqlDS ?

2) Ligger MySQL Connector jar i server lib (og ikke i ear/war/jar) ?

3) Bruger din scheduled task MySqlDS ?

4) Har du prøvet med <attribute name="StartAtStartup">false</attribute> ?
Avatar billede tigertool Nybegynder
24. maj 2009 - 14:07 #3
Ad 1) Mener du når Scheduler eller MySQL virker?

Ad 2) mysql-connector-java-5.1.7-bin ligger i "deploy" - og ikke i min EAR

Ad 3) Nej, min scheduled task er en dummy der ikke lavet andet end at skrive TEST via Log4J

Ad 4) Ja, det prøvede jeg som det første - det ændre ikke på noget, desværre :(
Avatar billede arne_v Ekspert
24. maj 2009 - 15:22 #4
re 1)

Ja.

re 2)

server/xxxx/deploy ????

server/xxxx/lib lyder mere rigtigt.
Avatar billede tigertool Nybegynder
24. maj 2009 - 15:44 #5
Ad 1) Du kan se hele min jboss-log her: http://88.80.193.29/jboss_log.txt

Ad 2) Jeg flyttede mysql-connector til server/default/lib (fra server/default/deploy - det ændrede intet.
Avatar billede tigertool Nybegynder
24. maj 2009 - 23:32 #6
Hmm.. hvis jeg manuelt opretter mysql-ds.xml i server/default/deploy, samt lægger mysql-connector samme sted, og så genstarter jboss, så virker alt.

Indtil nu har jeg haft min mysql-ds.xml i min EAR, hvilket også har virket indtil jeg tilføjede scheduler-service.xml. scheduler-service.xml ligger stadig i min EAR.

Hvor skal mine xml-filer ligge? skal de være i EAR (i givet fald i en JAR i EAR, eller bare inde i EAR) - eller skal de være deploy-mappen?
Avatar billede arne_v Ekspert
25. maj 2009 - 16:18 #7
Service XML filerne bør deployes selvstændigt - de definerede services kan/skal køre uafhængigt af de forskellige apps.

Du kan godt have flere .ear filer som bruger samme MySQL database pool.
Avatar billede tigertool Nybegynder
05. juli 2009 - 15:55 #8
Jeg tror jeg fik styr på det - god information det med at en ds-pool kan deles af EARs. arne_v, svar udbedes :)
Avatar billede arne_v Ekspert
05. juli 2009 - 16:19 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester