How to Monitor progress of Directory Import process in Crowd

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問


  

プラットフォームについて: Data Center のみ - この記事は、Data Center プラットフォームのアトラシアン製品にのみ適用されます。

この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。

*Fisheye および Crucible は除く

要約

How to monitor the Directory Import process referred to in the Importing Users from One Crowd Directory into Another knowledge article.

環境

Crowd 5.2.2

ソリューション

  • In Crowd, Enable Debug logging for the below classes in Setting -> Logging and Properties ->. At the end, add each package one by one, select New Level as DEBUG, and click Add. Once all are added, click on update logging.

    com.atlassian.crowd.manager.directory.DirectoryManagerGeneric
    com.atlassian.crowd.dao.user.UserDAOHibernate
    com.atlassian.crowd.dao.group.GroupDAOHibernate
    com.atlassian.crowd.dao.membership.MembershipDAOHibernate
  • Start the Directory import process.
  • When the import process starts, it will print the details about each stage and the number of users and groups it will import. However, it will not print a count of user-to-group memberships and group-to-group memberships. To find out the progress of each stage, follow the next steps:

    2024-03-19 09:57:08,839 http-nio-8095-exec-35 url: /crowd/console/secure/dataimport/directoryconfirmation!update.action; user: admin INFO [crowd.importer.importers.BaseImporter] Importing 6 groups.
    2024-03-19 09:57:08,887 http-nio-8095-exec-35 url: /crowd/console/secure/dataimport/directoryconfirmation!update.action; user: admin INFO [crowd.importer.importers.BaseImporter] Importing 2 users.
    2024-03-19 09:57:08,928 http-nio-8095-exec-35 url: /crowd/console/secure/dataimport/directoryconfirmation!update.action; user: admin INFO [crowd.importer.importers.BaseImporter] Importing user-to-group memberships.
  • Find out the directory id's for the source and destination directory.

    select count(*) from cwd_directory where directory_id = 'source_directory_id';
    
    select count(*) from cwd_directory where directory_id = 'destination_directory_id';
  • To find out the count of user-group memberships that will be imported, run the following SQL query:

    select count(*) from cwd_membership where directory_id = "source_directory_id";
  • Find out the thread ID of the thread running the Directory Import by taking a thread dump, and noting down the thread ID for the thread having the below stack trace:

    "http-nio-8095-exec-3" daemon prio=5 tid=0x000000000000008c nid=0 runnable 
       java.lang.Thread.State: RUNNABLE
    	at java.base@11.0.22/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base@11.0.22/java.lang.reflect.Method.invoke(Method.java:566)
    	at org.hibernate.property.access.spi.GetterMethodImpl.get(GetterMethodImpl.java:42)
    	at org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValues(AbstractEntityTuplizer.java:574)
    	at org.hibernate.tuple.entity.PojoEntityTuplizer.getPropertyValues(PojoEntityTuplizer.java:154)
    	at org.hibernate.persister.entity.AbstractEntityPersister.getPropertyValues(AbstractEntityPersister.java:5169)
    	at org.hibernate.event.internal.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:206)
    	at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:162)
    	at org.hibernate.event.internal.AbstractFlushingEventListener$$Lambda$787/0x00000008414a9840.accept(Unknown Source)
    	at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:99)
    	at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:229)
    	at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:93)
    	at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:50)
    	at org.hibernate.internal.SessionImpl$$Lambda$836/0x00000008414b1040.accept(Unknown Source)
    	at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:99)
    	at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1327)
    	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1870)
    	at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:370)
    	at org.hibernate.internal.CriteriaImpl.uniqueResult(CriteriaImpl.java:392)
    	at com.atlassian.crowd.dao.group.GroupDAOHibernate.findByNameInternal(GroupDAOHibernate.java:150)
    	at com.atlassian.crowd.dao.group.GroupDAOHibernate.findByName(GroupDAOHibernate.java:138)
    	at com.atlassian.crowd.dao.group.GroupDAOHibernate.findByName(GroupDAOHibernate.java:44)
    	at com.atlassian.crowd.directory.AbstractInternalDirectory.findGroupByName(AbstractInternalDirectory.java:710)
    	at com.atlassian.crowd.directory.AbstractInternalDirectory.findGroupByName(AbstractInternalDirectory.java:65)
    	at com.atlassian.crowd.directory.AbstractForwardingDirectory.findGroupByName(AbstractForwardingDirectory.java:147)
    	at com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.findGroupByName(DirectoryManagerGeneric.java:541)
    	at com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.addUserToGroup(DirectoryManagerGeneric.java:728)
    	at com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.addAllUsersToGroup(DirectoryManagerGeneric.java:1288)
    ....
    	at com.atlassian.crowd.importer.importers.BaseImporter.importUserMemberships(BaseImporter.java:132)
    	at com.atlassian.crowd.importer.importers.BaseImporter.importUserToGroupMemberships(BaseImporter.java:226)
    	at com.atlassian.crowd.importer.importers.BaseImporter.importUsersGroupsAndMemberships(BaseImporter.java:210)
    	at com.atlassian.crowd.importer.importers.DirectoryImporter.importUsersGroupsAndMemberships(DirectoryImporter.java:30)
    ...
    	at com.atlassian.crowd.importer.manager.ImporterManagerImpl.performImport(ImporterManagerImpl.java:49)
    	at com.atlassian.crowd.console.action.dataimport.DirectoryConfirmation.update(DirectoryConfirmation.java:35)
    .....
    	at java.base@11.0.22/java.lang.Thread.run(Thread.java:829)
  • In the grep command, substitute the thread ID which is running the directory import and directory ID to get the count of records completed for each stage. The command has to executed from the <crowd-home>/logs directory which has atlassian-crowd.log. 

    // To check the user import status.
    grep DEBUG atlassian-crowd.log*|grep "http-nio-8095-exec-3"|grep "crowd.dao.user.UserDAOHibernate"|grep 45678922|grep "Saving Object"|wc -l
    
    //To check the group import status
    grep DEBUG atlassian-crowd.log*|grep "http-nio-8095-exec-3"|grep "crowd.dao.group.GroupDAOHibernate"|grep 45678922|grep "Saving Object"|wc -l
    
    //To check User-group membership.
    grep DEBUG atlassian-crowd.log*|grep "http-nio-8095-exec-3"|grep "com.atlassian.crowd.dao.membership.MembershipDAOHibernate"grep 45678922|grep "Saving Object"|wc -l
  • Once the directory import process completes, it will print below message:

    2022-03-21 19:14:47,100 http-nio-8095-exec-12  url: /crowd/console/secure/dataimport/directoryconfirmation!update.action; user: admin INFO [crowd.importer.importers.BaseImporter] Completed importing 13456 user-to-group memberships.
    2022-03-21 15:27:36,210 http-nio-8095-exec-12  url: /crowd/console/secure/dataimport/directoryconfirmation!update.action; user: admin INFO [crowd.importer.importers.BaseImporter] Completed importing 54 group-to-group memberships.


最終更新日 2024 年 4 月 17 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.