In this session we will start by examining some of features that developers have available when using the Foundation service interfaces: how to initiate and use transactions; how and when to make use of transactional resources; using different types of search; controlling behaviors e.g. 'cm:auditable'; changing CopyService behavior. Following this, some repository internals will be examined, including: typical content lifecycles and parameters that control these; schema generation files, upgrade scripts and runtime SQL (3.4-specific); considerations for large-scale custom data structures.
2. Alfresco Repository Internals 2 Resource Contention Node Creation and Modification Actions Scheduled Jobs Transactions Resources Implicit and Explicit Using Alfresco’s Transaction Support Agenda (1)
38. bindResource and getResource: Bind objects to current transaction. This is like ThreadLocal but is safer i.e. Resources are bound to the transaction and go away when the transaction is terminated.
1:00Focus on development; Possible to pick up details from the Javadocs and proceed; I will give details of supporting infrastructure and considerations that will improve your code.
1:00
1:00
~2:40Later demo: Write batching (demo 1)Note: 3.4
~4:40
~6:45Usually, user-driven changes are usually evenly distributed; more danger from server-initiated process (background processes or logic derived from customer events).
10:30Yellow: Taking these limits other transactionsGreen: No effect on other transactions
18:20Illustrate the difference between Implicit and Explicit transactions and why developers should care about themWill see how cost of continuing txn is negligible
21:20
23:45Demo 0Fewer CPU cycles
29:45Demo 1Effects of index.tracking.disableInTransactionIndexing: that Mike Farman and I will be showing
34:00Demo 2Can go into optimistic locking, but it is less prevalent on 3.4 as writes occur immediately, etc.
43:00Leave non-propagating alone unless ...Use read-only for all read scenarios. If your code is writing in the reads, then change it. In an emergency, start a new transaction (non-propagating, but should use conditional logic.Will discuss an example later.