Вы используете сервер приложений, поэтому вам не нужно устанавливать параметры подключения к базе данных в файле persistence.xml. Вы должны иметь возможность создать источник данных JNDI на вашем сервере приложений, а затем использовать его. Сервер EAch может иметь источник данных с тем же именем JNDI, и тогда не будет необходимости в каких-либо различиях persistence.xml.
Workshop, JPA и DataSources представляется особенно уместным для вас. Как и Настройка источника данных JNDI в WebSphere 6.0 / 6.1 и WebSphere + JNDI + Spring Framework + Hibernate .
Вы используете Spring? Если это так, то проблему легко решить: вы не помещаете информацию об источнике данных в свой файл persistence.xml, вы помещаете ее в контекст приложения, и она будет иметь разную конфигурацию на каждом сервере.
Например:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:database.properties"/>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${database.class}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
</bean>
и каждый сервер может иметь свой файл database.properties на каждом сервере (где каждый находится в пути к классам где-то в этом примере):
database.username=scratch
database.password=scratch
database.class=oracle.jdbc.OracleDriver
database.url=jdbc:oracle:thin:@localhost:1521:XE
Изменение файла persistence.xml во время выполнения будет проблематичным, поскольку в действительности JPA не является таковым.
Конечно, вы можете использовать источники данных JNDI и с Spring.