Is it good idea to have always open EnityManager during application life? Does it consume some resources like database connection or memory for entities?
The best design is to use one EntityManager per request.
It is possible to keep long lived EntityManagers if you use clear() or weak_reference_mode,
EclipseLink/UserGuide/JPA/Basic JPA Development/Caching/Shared and Isolated - Eclipsepedia
A database connection is only held if you use exclusive connection mode, or are in a transaction and have flushed to the database but not yet committed or rolledback.