diff --git a/remote-api/src/main/java/org/alfresco/repo/webdav/auth/BaseSSOAuthenticationFilter.java b/remote-api/src/main/java/org/alfresco/repo/webdav/auth/BaseSSOAuthenticationFilter.java
index 3c4bcdb90f..a99a30e68b 100644
--- a/remote-api/src/main/java/org/alfresco/repo/webdav/auth/BaseSSOAuthenticationFilter.java
+++ b/remote-api/src/main/java/org/alfresco/repo/webdav/auth/BaseSSOAuthenticationFilter.java
@@ -208,7 +208,7 @@ public abstract class BaseSSOAuthenticationFilter extends BaseAuthenticationFilt
{
match = container.getRegistry().findWebScript(req.getMethod(), getScriptUrl(req));
}
- catch (NotFoundException notFoundEx)
+ catch (NotFoundException | IllegalArgumentException Ex)
{
getLogger().debug(req.getMethod() + " " + getScriptUrl(req) + "not found in Public API Container.");
}
diff --git a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql
index 0f1f607d27..8c97111e1b 100644
--- a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql
+++ b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql
@@ -179,7 +179,9 @@ CREATE TABLE alf_transaction
change_txn_id VARCHAR(56) NOT NULL,
commit_time_ms BIGINT,
PRIMARY KEY (id),
- KEY idx_alf_txn_ctms (commit_time_ms),
+ KEY idx_alf_txn_ctms (commit_time_ms, id),
+ KEY idx_alf_txn_ctms_sc (commit_time_ms),
+ KEY idx_alf_txn_id_ctms (id, commit_time_ms),
KEY fk_alf_txn_svr (server_id),
CONSTRAINT fk_alf_txn_svr FOREIGN KEY (server_id) REFERENCES alf_server (id)
) ENGINE=InnoDB;
@@ -222,6 +224,8 @@ CREATE TABLE alf_node
KEY idx_alf_node_crd (audit_created, store_id, type_qname_id),
KEY idx_alf_node_mor (audit_modifier, store_id, type_qname_id),
KEY idx_alf_node_mod (audit_modified, store_id, type_qname_id),
+ KEY idx_alf_node_ver (version),
+ KEY idx_alf_node_txn (transaction_id),
CONSTRAINT fk_alf_node_acl FOREIGN KEY (acl_id) REFERENCES alf_access_control_list (id),
CONSTRAINT fk_alf_node_store FOREIGN KEY (store_id) REFERENCES alf_store (id),
CONSTRAINT fk_alf_node_tqn FOREIGN KEY (type_qname_id) REFERENCES alf_qname (id),
diff --git a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml
index fb3afd9d32..0b50ab059a 100644
--- a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml
+++ b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml
@@ -1681,6 +1681,16 @@
type_qname_id
+
+
+ version
+
+
+
+
+ transaction_id
+
+
@@ -2674,6 +2684,18 @@
commit_time_ms
+ id
+
+
+
+
+ commit_time_ms
+
+
+
+
+ id
+ commit_time_ms
diff --git a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql
index 39c164ee5c..3bce383d6c 100644
--- a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql
+++ b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql
@@ -196,6 +196,8 @@ CREATE TABLE alf_transaction
CONSTRAINT fk_alf_txn_svr FOREIGN KEY (server_id) REFERENCES alf_server (id)
);
CREATE INDEX idx_alf_txn_ctms ON alf_transaction (commit_time_ms, id);
+CREATE INDEX idx_alf_txn_ctms_sc ON alf_transaction (commit_time_ms);
+CREATE INDEX idx_alf_txn_id_ctms ON alf_transaction (id, commit_time_ms);
CREATE INDEX fk_alf_txn_svr ON alf_transaction (server_id);
CREATE SEQUENCE alf_store_seq START WITH 1 INCREMENT BY 1;
@@ -244,6 +246,8 @@ CREATE INDEX fk_alf_node_acl ON alf_node (acl_id);
CREATE INDEX fk_alf_node_store ON alf_node (store_id);
CREATE INDEX idx_alf_node_tqn ON alf_node (type_qname_id, store_id, id);
CREATE INDEX fk_alf_node_loc ON alf_node (locale_id);
+CREATE INDEX idx_alf_node_ver ON alf_node (version);
+CREATE INDEX idx_alf_node_txn ON alf_node (transaction_id);
CREATE INDEX fk_alf_store_root ON alf_store (root_node_id);
ALTER TABLE alf_store ADD CONSTRAINT fk_alf_store_root FOREIGN KEY (root_node_id) REFERENCES alf_node (id);
diff --git a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml
index 395e3f3a7c..8cebcf2cc8 100644
--- a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml
+++ b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml
@@ -1740,6 +1740,16 @@
id
+
+
+ version
+
+
+
+
+ transaction_id
+
+
@@ -2753,6 +2763,17 @@
id
+
+
+ commit_time_ms
+
+
+
+
+ id
+ commit_time_ms
+
+
diff --git a/repository/src/main/resources/alfresco/dbscripts/db-schema-context.xml b/repository/src/main/resources/alfresco/dbscripts/db-schema-context.xml
index 12cf459246..86921c4333 100644
--- a/repository/src/main/resources/alfresco/dbscripts/db-schema-context.xml
+++ b/repository/src/main/resources/alfresco/dbscripts/db-schema-context.xml
@@ -54,6 +54,7 @@
+
diff --git a/repository/src/main/resources/alfresco/dbscripts/upgrade/6.3/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/add-indexes-node-transaction.sql b/repository/src/main/resources/alfresco/dbscripts/upgrade/6.3/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/add-indexes-node-transaction.sql
new file mode 100644
index 0000000000..c29f7c5632
--- /dev/null
+++ b/repository/src/main/resources/alfresco/dbscripts/upgrade/6.3/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/add-indexes-node-transaction.sql
@@ -0,0 +1,35 @@
+--
+-- Title: Update alf_node and alf_transaction indexes for more performance
+-- Database: MySQL
+-- Since: V6.3
+-- Author: Eva Vasques
+--
+-- Please contact support@alfresco.com if you need assistance with the upgrade.
+--
+
+DROP INDEX idx_alf_node_ver; --(optional)
+CREATE INDEX idx_alf_node_ver ON alf_node (version);
+
+DROP INDEX idx_alf_node_txn; --(optional)
+CREATE INDEX idx_alf_node_txn ON alf_node (transaction_id);
+
+DROP INDEX idx_alf_txn_ctms; --(optional)
+CREATE INDEX idx_alf_txn_ctms ON alf_transaction (commit_time_ms, id);
+
+DROP INDEX idx_alf_txn_ctms_sc; --(optional)
+CREATE INDEX idx_alf_txn_ctms_sc ON alf_transaction (commit_time_ms);
+
+DROP INDEX idx_alf_txn_id_ctms; --(optional)
+CREATE INDEX idx_alf_txn_id_ctms ON alf_transaction (id, commit_time_ms);
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V6.3-add-indexes-node-transaction';
+INSERT INTO alf_applied_patch
+ (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
+ VALUES
+ (
+ 'patch.db-V6.3-add-indexes-node-transaction', 'Create aditional indexes on alf_node and alf_transaction',
+ 0, 13005, -1, 13006, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
+ );
\ No newline at end of file
diff --git a/repository/src/main/resources/alfresco/dbscripts/upgrade/6.3/org.alfresco.repo.domain.dialect.PostgreSQLDialect/add-indexes-node-transaction.sql b/repository/src/main/resources/alfresco/dbscripts/upgrade/6.3/org.alfresco.repo.domain.dialect.PostgreSQLDialect/add-indexes-node-transaction.sql
new file mode 100644
index 0000000000..968b1575be
--- /dev/null
+++ b/repository/src/main/resources/alfresco/dbscripts/upgrade/6.3/org.alfresco.repo.domain.dialect.PostgreSQLDialect/add-indexes-node-transaction.sql
@@ -0,0 +1,32 @@
+--
+-- Title: Update alf_node and alf_transaction indexes for more performance
+-- Database: PostgreSQL
+-- Since: V6.3
+-- Author: Eva Vasques
+--
+-- Please contact support@alfresco.com if you need assistance with the upgrade.
+--
+
+DROP INDEX idx_alf_node_ver; --(optional)
+CREATE INDEX idx_alf_node_ver ON alf_node (version);
+
+DROP INDEX idx_alf_node_txn; --(optional)
+CREATE INDEX idx_alf_node_txn ON alf_node (transaction_id);
+
+DROP INDEX idx_alf_txn_ctms_sc; --(optional)
+CREATE INDEX idx_alf_txn_ctms_sc ON alf_transaction (commit_time_ms);
+
+DROP INDEX idx_alf_txn_id_ctms; --(optional)
+CREATE INDEX idx_alf_txn_id_ctms ON alf_transaction (id, commit_time_ms);
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V6.3-add-indexes-node-transaction';
+INSERT INTO alf_applied_patch
+ (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
+ VALUES
+ (
+ 'patch.db-V6.3-add-indexes-node-transaction', 'Create aditional indexes on alf_node and alf_transaction',
+ 0, 13005, -1, 13006, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
+ );
\ No newline at end of file
diff --git a/repository/src/main/resources/alfresco/messages/patch-service.properties b/repository/src/main/resources/alfresco/messages/patch-service.properties
index 5cf20e795c..49682fd571 100644
--- a/repository/src/main/resources/alfresco/messages/patch-service.properties
+++ b/repository/src/main/resources/alfresco/messages/patch-service.properties
@@ -400,4 +400,6 @@ patch.updateAdminUserWhenDefault.result=\n\Successfully removed password2 proper
patch.db-V5.2-remove-jbpm-tables-from-db.description=Removes all JBPM related tables from the database.
-patch.db-V6.0-change-set-indexes.description=Add additional indexes to support acl tracking.
\ No newline at end of file
+patch.db-V6.0-change-set-indexes.description=Add additional indexes to support acl tracking.
+
+patch.db-V6.3-add-indexes-node-transaction.description=Create additional indexes on alf_node and alf_transaction
\ No newline at end of file
diff --git a/repository/src/main/resources/alfresco/patch/patch-services-context.xml b/repository/src/main/resources/alfresco/patch/patch-services-context.xml
index bebdb67afb..331e8c22be 100644
--- a/repository/src/main/resources/alfresco/patch/patch-services-context.xml
+++ b/repository/src/main/resources/alfresco/patch/patch-services-context.xml
@@ -1397,5 +1397,17 @@
classpath:alfresco/dbscripts/upgrade/6.0/${db.script.dialect}/change-set-indexes.sql
+
+
+ patch.db-V6.3-add-indexes-node-transaction
+ patch.db-V6.3-add-indexes-node-transaction.description
+ 0
+ 13005
+ 13006
+ ${system.new-node-transaction-indexes.ignored}
+
+ classpath:alfresco/dbscripts/upgrade/6.3/${db.script.dialect}/add-indexes-node-transaction.sql
+
+
diff --git a/repository/src/main/resources/alfresco/repository.properties b/repository/src/main/resources/alfresco/repository.properties
index d796837d01..e66032f73f 100644
--- a/repository/src/main/resources/alfresco/repository.properties
+++ b/repository/src/main/resources/alfresco/repository.properties
@@ -3,7 +3,7 @@
repository.name=Main Repository
# Schema number
-version.schema=13005
+version.schema=13006
# Directory configuration
@@ -1313,3 +1313,6 @@ system.delete_not_exists.delete_batchsize=1000
system.delete_not_exists.read_only=false
system.delete_not_exists.timeout_seconds=-1
system.prop_table_cleaner.algorithm=V2
+
+# Creates additional indexes on alf_node and alf_transaction. Recommended for large repositories.
+system.new-node-transaction-indexes.ignored=true
\ No newline at end of file