Spring batch en essayant de créer persistant Lot de Travail Respository de nouveau
Cela semble être une question stupide. Je suis en train de configurer un Oracle10g base de données pour le Printemps Job Référentiel (Spring Batch 2.1.7), j'ai été en mesure d'avoir les tableaux créés à l'aide du script disponible à org/springframework/lot/core/schema-oracle10g.sql dans le noyau. J'ai également définir la propriété lot.les données.source.init à faux.
Sur une nouvelle base de données de mon programme batch fonctionne très bien, a réussi à créer toutes les tables de Lot/Séquences et de les remplir avec les détails du lot de résultats. Cependant, quand je le lance à nouveau Spring Batch essaie de créer ces tables de à nouveau et lance "ORA-00955: le nom est déjà utilisé par un objet existant" l'exception". Ce que je fais mal?
# For Oracle
batch.jdbc.driver=oracle.jdbc.driver.OracleDriver
batch.jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
batch.jdbc.user=****
batch.jdbc.password=****
batch.schema=****
batch.schema.script=classpath:/org/springframework/batch/core/schema-oracle10g.sql
batch.drop.script=classpath:/org/springframework/batch/core/schema-drop-oracle10g.sql
batch.jdbc.testWhileIdle=true
batch.data.source.init=false
Voici mon fichier de contexte:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:batch="http://www.springframework.org/schema/batch"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="
http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.1.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:property-placeholder location="classpath:batch.properties" />
<context:component-scan base-package="com.myco.mypack" />
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="${batch.schema.script}" />
</jdbc:initialize-database>
<import resource="classpath:/META-INF/spring/module-context.xml" />
<bean id="jobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
<property name="jobRepository" ref="jobRepository"/>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" lazy-init="true">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="jobRepository" class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager"/>
<property name="databaseType" value="oracle" />
<property name="tablePrefix" value="BATCH_"/>
<property name="isolationLevelForCreate" value="ISOLATION_DEFAULT"/>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${batch.jdbc.driver}" />
<property name="url" value="${batch.jdbc.url}" />
<property name="username" value="${batch.jdbc.user}" />
<property name="password" value="${batch.jdbc.password}" />
</bean>
</beans>
Salut Michael, édité ma question pour ajouter la configuration XML.
OriginalL'auteur Dchucks | 2012-04-05
Vous devez vous connecter pour publier un commentaire.
je ne vois pas l'utilisation de lot.les données.source.init comme ceci:
Et peut-être Michael je peut vous attirer pour répondre à une des plus triviales newbie question sur Spring Batch. Peut-on créer un Nouveau travail (Horaire d'un emploi) ou de Supprimer un existant à travers le Spring Batch Admin (je vois que le guide parle le téléchargement d'un fichier XML pour l'ajout d'un emploi, mais qui semble fastidieux, si il y a une API pourquoi ne devrions-nous pas être en mesure de créer un emploi à la volée par le Lot Admin INTERFACE Web)?
merci d'ajouter ce que une nouvelle question afin que d'autres puissent le trouver trop 🙂 pour mon auto, je peux dire que je ne sais pas spring batch admin assez bon
Si vous avez copié le code ci-dessus, mot à mot, ce n'était probablement pas de travail à cause de la # au lieu de $ sur la
enabled
de la propriété.merci, bonne prise, je l'ai changé
OriginalL'auteur Michael Pralow
Ça fait un moment mais je pense que pour les personnes à la recherche de ce problème, il permettra de savoir que vous pouvez désactiver la création de bases de données en utilisant
dans l'application.propriétés comme indiqué dans la documentation:
http://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html
OriginalL'auteur Xtroce
Si je passe argument de Ligne de Commande -Dbatch.les données.source.init=false ,alors le intialization n'est pas activé.
Mais Si j'utilise le ci-dessous de configuration et d'installation enabled à false dans le contexte xml , puis initialisation est déclenché même si permis drapeau est faux
OriginalL'auteur lives