ther server in the begining of method serviceYYY will pop connection from each pool
The time at which the app gets a connection from the app server's connection pool has nothing to do with the transaction settings of the method. Instead, it is entirely dependent on what persistence mechanism is used - JPA/Hibernate will behave differently (in terms of obtaining a connection from the connection pool) than if you are doing your own persistence handling, or if you are using some other persistence framework.
Transaction state in
Java EE does not necessarily require a transaction state in the database. Most databases do not require that you specifically call a "start transaction" function. Instead, the database enters transaction state on the first update when autocommit is not set. Until such an update is done, there might not be any interaction with the database.
even if no database activity is required.
Since serviceYYY is marked as requiring a transaction, one will be created even if no database update is every done by the code.