cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Excessive logging in MethodServer log

Highlighted
Newbie

Excessive logging in MethodServer log

All,

I am getting some excessive logging in the MethodServer log, these are some sql loggings and I am not sure where it is coming from. Does anyone know how to turn this off or what might be causing these. I have a call open with PTC, not sure if they can find a solution for me in time for prodcution go-live. These loggings started after I upgraded a test server from PDMLink 8.0 M030 to PDMLink 8.0 M050. Section of the Methodserver log is pasted below


Tue 7/29/08 10:03:57: main: DEBUG - Start transaction level=1 conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: INFO - Lock Statement=LOCK TABLE WTUser IN EXCLUSIVE MODE
Tue 7/29/08 10:03:57: main: DEBUG - Start transaction level=2 conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: DEBUG - Commit transaction: level=2 handle=2 conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: DEBUG - commitTransaction(): currentSavepoint=null
Tue 7/29/08 10:03:57: main: DEBUG - Start transaction level=2 conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: DEBUG - Commit transaction: level=2 handle=2 conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: DEBUG - commitTransaction(): currentSavepoint=null
Tue 7/29/08 10:03:57: main: DEBUG - Commit transaction: level=1 handle=1 conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: DEBUG - Executing transaction operation: commit=true savepoint=null conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: DEBUG - commitTransaction(): currentSavepoint=null
Tue 7/29/08 10:03:58: main: INFO - buildSQL(): depthThreshold=null depthThresholdValue=3
Tue 7/29/08 10:03:58: main: INFO - buildSQL(): chunkArrayProcessors=null
Tue 7/29/08 10:03:58: main: INFO - buildSQL(): i=0
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.blob$entrySet 2
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.classicReference.key.classname 3
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.classicReference.key.id 4
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.administratorsRef 5
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.administratorsRef.key.classname 6
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.administratorsRef.key.id 7
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.businessNamespace 8
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.creatorRef.key.classname 9
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.creatorRef.key.id 10
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.defaultCabinetRef 11
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.defaultCabinetRef.key.classname 12
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.defaultCabinetRef.key.id 13
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.defaultDomainRef 14
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.defaultDomainRef.key.classname 15
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.defaultDomainRef.key.id 16
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.description 17
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.name 18
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.ownerRef 19
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.ownerRef.key.classname 20
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.ownerRef.key.id 21
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.privateAccess 22
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.publicParentDomainRef 23
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.publicParentDomainRef.key.classname 24
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.publicParentDomainRef.key.id 25
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.sharingEnabled 26
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.systemCabinetRef 27
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.systemCabinetRef.key.classname 28
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.systemCabinetRef.key.id 29
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.systemDomainRef 30
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.systemDomainRef.key.classname 31
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.systemDomainRef.key.id 32
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerReference.key.classname 33
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerReference.key.id 34
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerTemplateReference.key.classname 35
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerTemplateReference.key.id 36
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.domainRef.key.classname 37
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.domainRef.key.id 38
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.entrySet 39
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.inheritedDomain 40
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.organizationReference.key.classname 41
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.organizationReference.key.id 42
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.createStamp 43
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.markForDelete 44
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.modifyStamp 45
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.theObjectIdentifier.classname 1
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.theObjectIdentifier.id 46
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.updateCount 47
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.updateStamp 48
Tue 7/29/08 10:03:58: main: INFO - Query(wt.pds.QuerySpecStatementBuilder)=SELECT 'wt.inf.container.ExchangeContainer',A0.blob$entrySetadHocAcl,A0.classnamekeyA6,A0.idA3A6,A0.administratorsRefIsNullconta,A0.classnamekeyA2containerInfo,A0.idA3A2containerInfo,A0.businessNamespacecontainerIn,A0.classnamekeyB2containerInfo,A0.idA3B2containerInfo,A0.defaultCabinetRefIsNullconta,A0.classnamekeyC2containerInfo,A0.idA3C2containerInfo,A0.defaultDomainRefIsNullcontai,A0.classnamekeyD2containerInfo,A0.idA3D2containerInfo,A0.descriptioncontainerInfo,A0.namecontainerInfo,A0.ownerRefIsNullcontainerInfo,A0.classnamekeyE2containerInfo,A0.idA3E2containerInfo,A0.privateAccesscontainerInfo,A0.publicParentDomainRefIsNullc,A0.classnamekeyF2containerInfo,A0.idA3F2containerInfo,A0.sharingEnabledcontainerInfo,A0.systemCabinetRefIsNullcontai,A0.classnamekeyG2containerInfo,A0.idA3G2containerInfo,A0.systemDomainRefIsNullcontain,A0.classnamekeyH2containerInfo,A0.idA3H2containerInfo,A0.classnamekeycontainerReferen,A0.idA3containerReference,A0.classnamekeycontainerTemplat,A0.idA3containerTemplateReferen,A0.classnamekeydomainRef,A0.idA3domainRef,A0.entrySetadHocAcl,A0.inheritedDomain,A0.classnamekeyorganizationRefe,A0.idA3organizationReference,TO_CHAR(A0.createStampA2,'dd mm yyyy hh24:mi:ss'),A0.markForDeleteA2,TO_CHAR(A0.modifyStampA2,'dd mm yyyy hh24:mi:ss'),A0.idA2A2,A0.updateCountA2,TO_CHAR(A0.updateStampA2,'dd mm yyyy hh24:mi:ss') FROM ExchangeContainer A0; Bind Parameters=null
Tue 7/29/08 10:03:58: main: INFO - Building persistent retrieve for class: class wt.inf.container.ExchangeContainer
Tue 7/29/08 10:03:58: main: INFO - Building persistable class: class wt.inf.container.ExchangeContainer
Tue 7/29/08 10:03:58: main: INFO - Read InlineBlob inline: entrySet

Thanks

Alexius C. Chukwuka
IT Analyst, PDP Systems
John Deere Power Systems
Product Engineering Center
1 REPLY 1
Highlighted

RE: Excessive logging in MethodServer log

Hi Alex,


Check the following database logging properties(or anything that starts with wt.pom.log) from site.xconf and db/db.properties to see if they are turned on.

<property name="wt.pom.log.append" overridable="true" targetfile="db/db.properties"&lt;br"/> value="false"/>
<property name="wt.pom.log.enabled" overridable="true" targetfile="db/db.properties"&lt;br"/> value="false"/>
<property name="wt.pom.log.JDBCStatements" overridable="true"&lt;br"/> targetFile="db/db.properties"
value="false"/>
<property name="wt.pom.log.SQLStatements" overridable="true"&lt;br"/> targetFile="db/db.properties"
value="false"/>
<property name="wt.pom.log.stackTrace" overridable="true" targetfile="db/db.properties"&lt;br"/> value="false"/>


Regards,

Prathap




All,

I am getting some excessive logging in the MethodServer log, these are some sql loggings and I am not sure where it is coming from. Does anyone know how to turn this off or what might be causing these. I have a call open with PTC, not sure if they can find a solution for me in time for prodcution go-live. These loggings started after I upgraded a test server from PDMLink 8.0 M030 to PDMLink 8.0 M050. Section of the Methodserver log is pasted below


Tue 7/29/08 10:03:57: main: DEBUG - Start transaction level=1 conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: INFO - Lock Statement=LOCK TABLE WTUser IN EXCLUSIVE MODE
Tue 7/29/08 10:03:57: main: DEBUG - Start transaction level=2 conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: DEBUG - Commit transaction: level=2 handle=2 conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: DEBUG - commitTransaction(): currentSavepoint=null
Tue 7/29/08 10:03:57: main: DEBUG - Start transaction level=2 conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: DEBUG - Commit transaction: level=2 handle=2 conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: DEBUG - commitTransaction(): currentSavepoint=null
Tue 7/29/08 10:03:57: main: DEBUG - Commit transaction: level=1 handle=1 conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: DEBUG - Executing transaction operation: commit=true savepoint=null conn=wt.pom.WTConnection@130998
Tue 7/29/08 10:03:57: main: DEBUG - commitTransaction(): currentSavepoint=null
Tue 7/29/08 10:03:58: main: INFO - buildSQL(): depthThreshold=null depthThresholdValue=3
Tue 7/29/08 10:03:58: main: INFO - buildSQL(): chunkArrayProcessors=null
Tue 7/29/08 10:03:58: main: INFO - buildSQL(): i=0
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.blob$entrySet 2
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.classicReference.key.classname 3
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.classicReference.key.id 4
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.administratorsRef 5
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.administratorsRef.key.classname 6
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.administratorsRef.key.id 7
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.businessNamespace 8
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.creatorRef.key.classname 9
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.creatorRef.key.id 10
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.defaultCabinetRef 11
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.defaultCabinetRef.key.classname 12
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.defaultCabinetRef.key.id 13
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.defaultDomainRef 14
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.defaultDomainRef.key.classname 15
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.defaultDomainRef.key.id 16
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.description 17
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.name 18
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.ownerRef 19
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.ownerRef.key.classname 20
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.ownerRef.key.id 21
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.privateAccess 22
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.publicParentDomainRef 23
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.publicParentDomainRef.key.classname 24
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.publicParentDomainRef.key.id 25
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.sharingEnabled 26
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.systemCabinetRef 27
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.systemCabinetRef.key.classname 28
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.systemCabinetRef.key.id 29
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.systemDomainRef 30
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.systemDomainRef.key.classname 31
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerInfo.systemDomainRef.key.id 32
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerReference.key.classname 33
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerReference.key.id 34
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerTemplateReference.key.classname 35
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.containerTemplateReference.key.id 36
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.domainRef.key.classname 37
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.domainRef.key.id 38
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.entrySet 39
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.inheritedDomain 40
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.organizationReference.key.classname 41
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.organizationReference.key.id 42
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.createStamp 43
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.markForDelete 44
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.modifyStamp 45
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.theObjectIdentifier.classname 1
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.theObjectIdentifier.id 46
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.updateCount 47
Tue 7/29/08 10:03:58: main: INFO - Add select attribute:wt.inf.container.ExchangeContainer.thePersistInfo.updateStamp 48
Tue 7/29/08 10:03:58: main: INFO - Query(wt.pds.QuerySpecStatementBuilder)=SELECT 'wt.inf.container.ExchangeContainer',A0.blob$entrySetadHocAcl,A0.classnamekeyA6,A0.idA3A6,A0.administratorsRefIsNullconta,A0.classnamekeyA2containerInfo,A0.idA3A2containerInfo,A0.businessNamespacecontainerIn,A0.classnamekeyB2containerInfo,A0.idA3B2containerInfo,A0.defaultCabinetRefIsNullconta,A0.classnamekeyC2containerInfo,A0.idA3C2containerInfo,A0.defaultDomainRefIsNullcontai,A0.classnamekeyD2containerInfo,A0.idA3D2containerInfo,A0.descriptioncontainerInfo,A0.namecontainerInfo,A0.ownerRefIsNullcontainerInfo,A0.classnamekeyE2containerInfo,A0.idA3E2containerInfo,A0.privateAccesscontainerInfo,A0.publicParentDomainRefIsNullc,A0.classnamekeyF2containerInfo,A0.idA3F2containerInfo,A0.sharingEnabledcontainerInfo,A0.systemCabinetRefIsNullcontai,A0.classnamekeyG2containerInfo,A0.idA3G2containerInfo,A0.systemDomainRefIsNullcontain,A0.classnamekeyH2containerInfo,A0.idA3H2containerInfo,A0.classnamekeycontainerReferen,A0.idA3containerReference,A0.classnamekeycontainerTemplat,A0.idA3containerTemplateReferen,A0.classnamekeydomainRef,A0.idA3domainRef,A0.entrySetadHocAcl,A0.inheritedDomain,A0.classnamekeyorganizationRefe,A0.idA3organizationReference,TO_CHAR(A0.createStampA2,'dd mm yyyy hh24:mi:ss'),A0.markForDeleteA2,TO_CHAR(A0.modifyStampA2,'dd mm yyyy hh24:mi:ss'),A0.idA2A2,A0.updateCountA2,TO_CHAR(A0.updateStampA2,'dd mm yyyy hh24:mi:ss') FROM ExchangeContainer A0; Bind Parameters=null
Tue 7/29/08 10:03:58: main: INFO - Building persistent retrieve for class: class wt.inf.container.ExchangeContainer
Tue 7/29/08 10:03:58: main: INFO - Building persistable class: class wt.inf.container.ExchangeContainer
Tue 7/29/08 10:03:58: main: INFO - Read InlineBlob inline: entrySet

Thanks

Alexius C. Chukwuka
IT Analyst, PDP Systems
John Deere Power Systems
Product Engineering Center
Announcements