If the access from the different servers is done within the same transaction then there is no issue but you will need use the JTS version of the transactions product. JTS lets you do distributed transactions. The default (JTA) version only does local transactions.
Otherwise the accesses from the different servers will have to contend with each other - the access that comits first will win and the other accesses will rollback.
You should also check your resource manager documentation. Some managers require you to do the accesses from the same thread of control. Most products, Oracle for example, are fine but others such as Ingres wont be. I do not know about ms sql.