|
|
WebOTX Manual V10.4 (第4版) 目次を表示 |
インメモリデータグリッド連携部品では、性能情報採取機能によりJPAの性能情報を採取し、ランキング情報を生成することにより、パフォーマンスチューニングに必要なプロファイルデータを提供します。
また、ランキング情報は、データプリロードの読み込む順序として利用することができます。
情報採取は、ドメイン単位で行います。
性能情報採取機能では、JPAアプリケーションに組み込まれた以下のクラスのメソッドが性能情報の採取対象となります。
| クラス名 javax.persistence.EntityManager | |
|---|---|
| メソッド名 | |
| public void persist(Object entity) | |
| public <T> T merge(T entity) | |
| public void remove(Object entity) | |
| public <T> T find(Class<T> entityClass, Object primaryKey) | |
| public <T> T find(Class<T> entityClass, Object primaryKey, Map<String, Object> properties) | |
| public <T> T find(Class<T> entityClass, Object primaryKey, LockModeType lockMode) | |
| public <T> T find(Class<T> entityClass, Object primaryKey, LockModeType lockMode, Map<String, Object> properties) | |
| public <T> T getReference(Class<T> entityClass, Object primaryKey) | |
| public void flush() | |
| public void lock(Object entity, LockModeType lockMode) | |
| public void lock(Object entity, LockModeType lockMode, Map<String, Object> properties) | |
| public void refresh(Object entity) | |
| public void refresh(Object entity, Map<String, Object> properties) | |
| public void refresh(Object entity, LockModeType lockMode) | |
| public void refresh(Object entity, LockModeType lockMode, Map<String, Object> properties) | |
| public void detach(Object entity) | |
| public boolean contains(Object entity) | |
| public LockModeType getLockMode(Object entity) | |
| public Query createQuery(String qlString) | |
| public <T> TypedQuery<T> createQuery(CriteriaQuery<T> criteriaQuery) | |
| public <T> TypedQuery<T> createQuery(String qlString, Class<T> resultClass) | |
| public Query createNamedQuery(String name) | |
| public <T> TypedQuery<T> createNamedQuery(String name, Class<T> resultClass) | |
| public Query createNativeQuery(String sqlString) | |
| public Query createNativeQuery(String sqlString, Class resultClass) | |
| public Query createNativeQuery(String sqlString, String resultSetMapping) | |
| public void joinTransaction() | |
| public void close() | |
| public EntityTransaction getTransaction() | |
| クラス名 javax.persistence.Query | |
|---|---|
| メソッド名 | |
| List getResultList() | |
| Object getSingleResult() | |
| int executeUpdate() | |
| Query setMaxResults(int maxResult) | |
| int getMaxResults() | |
| Query setFirstResult(int startPosition) | |
| int getFirstResult() | |
| クラス名 javax.persistence.TypedQuery | |
|---|---|
| メソッド名 | |
| List<X> getResultList() | |
| X getSingleResult() | |
| TypedQuery<X> setMaxResults(int maxResult) | |
| TypedQuery<X> setFirstResult(int startPosition) | |
| クラス名 javax.persistence.EntityTransaction | |
|---|---|
| メソッド名 | |
| public void begin() | |
| public void commit() | |
| public void rollback() | |
| クラス名 javax.persistence.Cache | |
|---|---|
| メソッド名 | |
| public boolean contains(Class cls, Object primaryKey) | |
| public void evict(Class cls, Object primaryKey) | |
| public void evict(Class cls) | |
| public void evictAll() | |
| クラス名 javax.persistence.PersistenceUnitUtil | |
|---|---|
| メソッド名 | |
| public Object getIdentifier(Object entity) | |
| クラス名 javax.persistence.criteria.CriteriaQuery | |
|---|---|
| メソッド名 | |
| CriteriaQuery<T< select(Selection<? extends T< selection) | |
| CriteriaQuery<T> multiselect(Selection<?<... selections) | |
| CriteriaQuery<T> multiselect(List<Selection<?<< selectionList) | |
| CriteriaQuery<T> where(Expression<Boolean> restriction) | |
| CriteriaQuery<T> where(Predicate... restrictions) | |
| CriteriaQuery<T> groupBy(Expression<?<... grouping) | |
| CriteriaQuery<T> groupBy(List<Expression<?<< grouping) | |
| CriteriaQuery<T> having(Expression<Boolean> restriction) | |
| CriteriaQuery<T> having(Predicate... restrictions) | |
| CriteriaQuery<T> orderBy(Order... o) | |
| CriteriaQuery<T> orderBy(List<Order> o) | |
| CriteriaQuery<T> distinct(boolean distinct) | |
| List<Order> getOrderList() | |
| Set<ParameterExpression<?>> getParameters() | |
| クラス名 avax.persistence.criteria.Subquery | |
|---|---|
| メソッド名 | |
| Subquery<T> select(Expression<T> expression) | |
| Subquery<T> where(Expression<Boolean> restriction) | |
| Subquery<T> where(Predicate... restrictions) | |
| Subquery<T> groupBy(Expression<?>... grouping) | |
| Subquery<T> groupBy(List<Expression<?>> grouping) | |
| Subquery<T> having(Expression<Boolean> restriction) | |
| Subquery<T> having(Predicate... restrictions) | |
| Subquery<T> distinct(boolean distinct) | |
| <Y> Root<Y> correlate(Root<Y> parentRoot) | |
| <X, Y> Join<X, Y> correlate(Join<X, Y> parentJoin) | |
| <X, Y> CollectionJoin<X, Y> correlate(CollectionJoin<X, Y> parentCollection) | |
| <X, Y> SetJoin<X, Y> correlate(SetJoin<X, Y> parentSet) | |
| <X, Y< ListJoin<X, Y> correlate(ListJoin<X, Y> parentList) | |
| <X, K, V< MapJoin<X, K, V< correlate(MapJoin<X, K, V< parentMap) | |
| AbstractQuery<?> getParent() | |
| Expression<T> getSelection() | |
| Set<Join<?, ?>> getCorrelatedJoins() | |
| クラス名 org.eclipse.persistence.transaction.AbstractTransactionController | |
|---|---|
| メソッド名 | |
| void beginTransaction(AbstractSession session) | |
| void commitTransaction(AbstractSession session) | |
| void rollbackTransaction(AbstractSession session) | |
| void markTransactionForRollback() | |
| クラス名 org.eclipse.persistence.descriptors.DescriptorEventManager | |
|---|---|
| メソッド名 | |
| public void executeEvent(DescriptorEvent event) | |
| クラス名 org.eclipse.persistence.eis.EISAccessor | |
|---|---|
| メソッド名 | |
| public Object basicExecuteCall(Call call, AbstractRecord translationRow, AbstractSession session) | |
| クラス名 org.eclipse.persistence.exceptions.OptimisticLockException | |
|---|---|
| メソッド名 | |
| protected OptimisticLockException(String theMessage, ObjectLevelModifyQuery query) | |
| クラス名 org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor | |
|---|---|
| メソッド名 | |
| public Object basicExecuteCall(Call call, AbstractRecord translationRow, AbstractSession session) | |
| public void closeStatement(Statement statement, AbstractSession session, DatabaseCall call) | |
| public Integer executeDirectNoSelect(Statement statement, DatabaseCall call, AbstractSession session) | |
| public ResultSet executeSelect(DatabaseCall call, Statement statement, AbstractSession session) | |
| public Object processResultSet(ResultSet resultSet, DatabaseCall call, Statement statement, AbstractSession session) | |
| protected Vector buildThreadCursoredResult(final DatabaseCall dbCall, final ResultSet resultSet, final Statement statement, final ResultSetMetaData metaData, final AbstractSession session) | |
| クラス名 org.eclipse.persistence.internal.databaseaccess.DatabasePlatform | |
|---|---|
| メソッド名 | |
| public boolean wasFailureCommunicationBased(SQLException exception, Connection connection, AbstractSession sessionForProfile) | |
| クラス名 org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor | |
|---|---|
| メソッド名 | |
| public void connect(Login login, AbstractSession session) | |
| public void disconnect(AbstractSession session) | |
| public void beginTransaction(AbstractSession session) | |
| public void commitTransaction(AbstractSession session) | |
| protected void reconnect(AbstractSession session) | |
| public void rollbackTransaction(AbstractSession session) | |
| クラス名 org.eclipse.persistence.internal.databaseaccess.DynamicSQLBatchWritingMechanism | |
|---|---|
| メソッド名 | |
| protected PreparedStatement prepareBatchStatement(AbstractSession session) | |
| protected Statement prepareJDK12BatchStatement(AbstractSession session) | |
| クラス名 org.eclipse.persistence.internal.databaseaccess.ParameterizedSQLBatchWritingMechanism | |
|---|---|
| メソッド名 | |
| protected PreparedStatement prepareBatchStatements(AbstractSession session) | |
| クラス名 org.eclipse.persistence.internal.descriptors.ObjectBuilder | |
|---|---|
| メソッド名 | |
| public Object buildObject(ObjectBuildingQuery query, AbstractRecord databaseRow, JoinedAttributeManager joinManager) | |
| クラス名 org.eclipse.persistence.internal.identitymaps.IdentityMapManager | |
|---|---|
| メソッド名 | |
| public CacheKey acquireDeferredLock(Object primaryKey, Class domainClass, ClassDescriptor descriptor) | |
| public CacheKey acquireLock(Object primaryKey, Class domainClass, boolean forMerge, ClassDescriptor descriptor) | |
| public CacheKey acquireLockNoWait(Object primaryKey, Class domainClass, boolean forMerge, ClassDescriptor descriptor) | |
| public CacheKey acquireLockWithWait(Object primaryKey, Class domainClass, boolean forMerge, ClassDescriptor descriptor, int wait) | |
| public void acquireReadLock() | |
| public CacheKey acquireReadLockOnCacheKey(Object primaryKey, Class domainClass, ClassDescriptor descriptor) | |
| public CacheKey acquireReadLockOnCacheKeyNoWait(Object primaryKey, Class domainClass, ClassDescriptor descriptor) | |
| public boolean containsKey(Object key, Class theClass, ClassDescriptor descriptor) | |
| public Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) | |
| public void invalidateObjects(Expression selectionCriteria, Class theClass, Record translationRow, boolean shouldInvalidateOnException) | |
| public CacheKey getCacheKeyForObjectForLock(Object primaryKey, Class theClass, ClassDescriptor descriptor) | |
| public CacheKey getCacheKeyForObject(Object primaryKey, Class theClass, ClassDescriptor descriptor, boolean forMerge) | |
| public Object getFromIdentityMap(Object key, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) | |
| public Object getFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy, boolean conforming, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) | |
| public Object getFromIdentityMapWithDeferredLock(Object key, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) | |
| public Object getWrapper(Object primaryKey, Class theClass) | |
| public Object getWriteLockValue(Object primaryKey, Class domainClass, ClassDescriptor descriptor) | |
| public CacheKey putInIdentityMap(Object domainObject, Object keys, Object writeLockValue, long readTime, ClassDescriptor descriptor) | |
| public Object removeFromIdentityMap(Object key, Class domainClass, ClassDescriptor descriptor, Object objectToRemove) | |
| public void setWrapper(Object primaryKey, Class theClass, Object wrapper) | |
| public void setWriteLockValue(Object primaryKey, Class theClass, Object writeLockValue) | |
| クラス名 org.eclipse.persistence.internal.oxm.XMLObjectBuilder | |
|---|---|
| メソッド名 | |
| public Object buildObject(ObjectBuildingQuery query, AbstractRecord databaseRow, JoinedAttributeManager joinManager) | |
| クラス名 org.eclipse.persistence.internal.queries.StatementQueryMechanism | |
|---|---|
| メソッド名 | |
| protected void setCallFromStatement() | |
| クラス名 org.eclipse.persistence.internal.sessions.AbstractSession | |
|---|---|
| メソッド名 | |
| public void log(int level, String category, String message, Object[] params, Accessor accessor, boolean shouldTranslate) | |
| public void log(int level, String message, Object[] params, Accessor accessor, boolean shouldTranslate) | |
| public void logThrowable(int level, String category, Throwable throwable) | |
| public Object executeQuery(DatabaseQuery query, AbstractRecord row, int retryCount) | |
| クラス名 org.eclipse.persistence.internal.sessions.DatabaseSessionImpl | |
|---|---|
| メソッド名 | |
| protected void preConnectDatasource() | |
| クラス名 org.eclipse.persistence.internal.sessions.MergeManager | |
|---|---|
| メソッド名 | |
| public void mergeChangesFromChangeSet(UnitOfWorkChangeSet uowChangeSet) | |
| クラス名 org.eclipse.persistence.internal.sessions.UnitOfWorkImpl | |
|---|---|
| メソッド名 | |
| public void rollbackTransaction() | |
| public Object assignSequenceNumber(Object object, ClassDescriptor descriptor) | |
| protected void assignSequenceNumbers(Map objects) | |
| protected void commitToDatabaseWithChangeSet(boolean commitTransaction) | |
| protected void mergeChangesIntoParent() | |
| public Object mergeClone(Object rmiClone, int cascadeDepth) | |
| public Object registerExistingObject(Object objectToRegister, ClassDescriptor descriptor, Object queryPrimaryKey) | |
| public synchronized Object registerNewContainerBean(Object newObject) | |
| public synchronized Object registerNewContainerBeanForCMP(Object newObject) | |
| protected Object registerNewObject(Object implementation, ClassDescriptor descriptor) | |
| public void registerNewObjectForPersist(Object newObject, Map visitedObjects) | |
| protected Object registerObject(Object object, ClassDescriptor descriptor) | |
| クラス名 org.eclipse.persistence.internal.sessions.coordination.ProfileDiscoveryStartedCommand | |
|---|---|
| メソッド名 | |
| public void executeWithSession(AbstractSession session) | |
| クラス名 org.eclipse.persistence.internal.sessions.coordination.ProfileDiscoveryStoppedCommand | |
|---|---|
| メソッド名 | |
| public void executeWithSession(AbstractSession session) | |
| クラス名 org.eclipse.persistence.internal.sessions.coordination.ProfileMessageReceiveCommand | |
|---|---|
| メソッド名 | |
| public void executeWithSession(AbstractSession session) | |
| クラス名 org.eclipse.persistence.internal.sessions.coordination.ProfileMessageSentCommand | |
|---|---|
| メソッド名 | |
| public void executeWithSession(AbstractSession session) | |
| クラス名 org.eclipse.persistence.internal.sessions.coordination.ProfileRemoteChangeSetCommand | |
|---|---|
| メソッド名 | |
| public void executeWithSession(AbstractSession session) | |
| クラス名 org.eclipse.persistence.platform.database.SQLServerPlatform | |
|---|---|
| メソッド名 | |
| public Object executeStoredProcedure(DatabaseCall dbCall, PreparedStatement statement, DatabaseAccessor accessor, AbstractSession session) | |
| クラス名 org.eclipse.persistence.platform.database.SybasePlatform | |
|---|---|
| メソッド名 | |
| public Object executeStoredProcedure(DatabaseCall dbCall, PreparedStatement statement, DatabaseAccessor accessor, AbstractSession session) | |
| クラス名 org.eclipse.persistence.queries.DatabaseQuery | |
|---|---|
| メソッド名 | |
| public void checkPrepare(AbstractSession session, AbstractRecord translationRow, boolean force) | |
| クラス名 org.eclipse.persistence.queries.ReadAllQuery | |
|---|---|
| メソッド名 | |
| public Object execute(AbstractSession session, AbstractRecord row) | |
| クラス名 org.eclipse.persistence.queries.ReadObjectQuery | |
|---|---|
| メソッド名 | |
| protected Object checkEarlyReturnLocal(AbstractSession session, AbstractRecord translationRow) | |
| クラス名 org.eclipse.persistence.sessions.SessionEventManager | |
|---|---|
| メソッド名 | |
| public void missingDescriptor(Class missingClass) | |
| public void moreRowsDetected(DatabaseCall call) | |
| public void noRowsModified(ModifyQuery query, Object object) | |
| public void outputParametersDetected(Record outputRow, DatasourceCall call) | |
| public void postAcquireClientSession() | |
| public void postAcquireConnection(Accessor accessor) | |
| public void postAcquireUnitOfWork() | |
| public void postBeginTransaction() | |
| public void postCommitTransaction() | |
| public void postCommitUnitOfWork() | |
| public void postConnect(Accessor accessor) | |
| public void postExecuteQuery(DatabaseQuery query, Object result) | |
| public void postReleaseClientSession() | |
| public void postReleaseUnitOfWork() | |
| public void postResumeUnitOfWork() | |
| public void postRollbackTransaction() | |
| public void postDistributedMergeUnitOfWorkChangeSet(UnitOfWorkChangeSet changeSet) | |
| public void postMergeUnitOfWorkChangeSet(UnitOfWorkChangeSet changeSet) | |
| public void preBeginTransaction() | |
| public void preCalculateUnitOfWorkChangeSet() | |
| public void postCalculateUnitOfWorkChangeSet(UnitOfWorkChangeSet changeSet) | |
| public void preCommitTransaction( | |
| public void preCommitUnitOfWork() | |
| public void preExecuteQuery(DatabaseQuery query | |
| public void preLogin(Session session) | |
| public void postLogin(Session session) | |
| public void prepareUnitOfWork() | |
| public void preReleaseClientSession() | |
| public void preReleaseConnection(Accessor accessor) | |
| public void preReleaseUnitOfWork() | |
| public void preRollbackTransaction() | |
| public void preDistributedMergeUnitOfWorkChangeSet(UnitOfWorkChangeSet changeSet) | |
| public void preMergeUnitOfWorkChangeSet(UnitOfWorkChangeSet changeSet) | |
| クラス名 org.eclipse.persistence.sessions.server.ClientSession | |
|---|---|
| メソッド名 | |
| public ClientSession(ServerSession parent, ConnectionPolicy connectionPolicy, Map properties) | |
| クラス名 org.eclipse.persistence.sessions.server.ConnectionPool | |
|---|---|
| メソッド名 | |
| public synchronized Accessor acquireConnection( | |
| public synchronized void releaseConnection(Accessor connection) | |
| クラス名 org.eclipse.persistence.transaction.AbstractSynchronizationListener | |
|---|---|
| メソッド名 | |
| public void afterCompletion(Object status) | |
| public void beforeCompletion() | |
性能情報の採取を開始する場合、性能情報採取開始コマンドの実行、もしくは 統合運用管理ツールにより設定してください。
otxadminコマンドによる実行otxadmin> start-jpa-performanceinfomation --user admin --password adminadmin
性能情報のデータファイルは以下のディレクトリに格納されます。
データの各項目は、":"(コロン)区切りで出力されます。
| 性能情報の出力先フォルダ | ファイル名 |
|---|---|
| ${AS_DOMAIN}/logs/jpa/Profile/Work/ | YYYYMMDDHHmmss_PID_profile.dat |
出力項目は以下の通りです。
| 名前 | 説明 |
|---|---|
| タイムスタンプ(ミリ秒) | 性能情報登録時のシステムミリ秒 |
| タイムスタンプ(ナノ秒) | 性能情報登録時のシステムナノ秒 |
| スレッド名 | 性能情報登録を行ったスレッド名 |
| スレッドID | 性能情報登録を行ったスレッドID |
| メッセージ | 性能情報メッセージ。 以下の性能情報、もしくは、例外情報が格納されます。 |
| 名前 | 説明 |
|---|---|
| NO | シーケンスNo(1〜Long.MAX_VALUE) |
| レコードタイプ | 「P」 固定(Profile) |
| I/O | メソッド開始時:I メソッド終了時:O |
| API名 | "クラス名#メソッド名" の形式で出力 |
| エンティティ名 | エンティティ名(完全修飾名) |
| エンティティID | エンティティID |
| クエリ | クエリ名 or JPQL or SQL |
| 名前 | 説明 |
|---|---|
| NO | シーケンスNo(1〜Long.MAX_VALUE) |
| レコードタイプ | 「E」 固定(Exception) |
| API名 | "クラス名#メソッド名" の形式で出力 |
| エンティティ名 | エンティティ名(完全修飾名) |
| エンティティID | エンティティID |
JPAランキング情報生成コマンド(create-jpa-ranking)を使用することにより、
出力した性能情報のファイルからJPAのランキング情報の作成を行うことができます。
また、生成したJPAランキング情報は、データプリロードの読み込み順序として利用することができます。
コマンドについての詳細は
[ リファレンス
> コマンドリファレンス
> インメモリデータグリッド連携部品コマンド
] を参照してください。