Comparison and implications of Informix vs Oracle isolation levels and read consisten
We are migrating from Informix 7x to Oracle 9i. Does anyone have information regarding differences in Isolation Levels and read consistency methodologies of the 2 products and how this might influence application coding changes.
Thanks!
Dick
I would not touch Hibernate with a 10ft barge pole.
The best in Oracle, is standard pessimistic locking, using the default transaction isolation level.
However, this requires stateful client-server.
Web-based client-server is stateless. Which means optimistic locking is the only viable alternative. 3 choices with optimistic locking. Check each every row column for a row update/change. Add a version column to the row and compare before and after version numbers when updating. Checksum the row before and after and confirm the checksums are the same.
You need a keyboard, a bit of a brain, and some basic code to implement one of these as an optimistic locking interface for stateless client-server. Not Hibernate.
Similar Messages
-
Isolation level: repeatable read vs read stability.
I was going through the following link [http://www.developer.com/print.php/3706251] about database isolation levels. There was a statement:
In Read Stability, only rows that are retrieved or modified are locked, whereas in Repeatable Read, all rows that are being referenced are locked.
What is meant by "all rows that are being referenced".
According to my understanding in case of repeatable read, the table is locked. Is this understanding correct?
Edited by: user476453 on Oct 29, 2010 2:03 AMThis article is referencing DB2 isolation levels and not Oracle ones: isolation levels are standardized in SQL but practically they can be very different from one database to another. For Oracle please refer to http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/consist.htm#CNCPT621.
Your DB2 question should be posted on DB2 forum and not on an Oracle forum. -
Transaction Isolation Level to Read UnCommited in Non OLTP Database
HI,
We are having a database which for NOT OLTP process. That is OLAP DB. Operation on that DB is only Select and (Incremental Insert - FOR DWH ) not Update/Delete and we are performing ROLAP operations in that DB.
By Default SQL Server DB isolation Level is READ COMMITTED.AS Our DB IS OLAP SQL Server DB we need to change the isolation level toRead Uncommited. We google it down but We can achive in
Transaction level only by SET isoaltion Level TO Read UNCOMMITED
or ALLOW_SNAPSHOT_ISOLATION ON or READ_COMMITTED_SNAPSHOT
Is there any other way if we can Change the Database isolation level to READ uncommitedfor Entire Database?, insteads of achiving in Transaction Level or With out enabling SET ALLOW_SNAPSHOT_ISOLATION ON or READ_COMMITTED_SNAPSHOT
Please use Marked as Answer if my post solved your problem and use Vote As Helpful if a post was useful.
Please use Marked as Answer if my post solved your problem and use Vote As Helpful if a post was useful.Hi,
My first question would be why do you want to change Isolation level to read uncommitted, are you aware about the repercussions you will get dirty data, a wrong data.
Isolation level is basically associated with the connection so is define in connection.
>> Transaction level only by SET isoaltion Level TO Read UNCOMMITED or ALLOW_SNAPSHOT_ISOLATION ON or READ_COMMITTED_SNAPSHOT
Be cautious Read UNCOMMITED and Snapshot isolation level are not same.The former is pessimistic Isolation level and later is Optimistic.Snapshot isolation levels are totally different from read uncommitted as snapshot Isolation level
uses row versioning.I guess you wont require snapshot isolation level in O:AP DB.
Please read below blog about setting Isolation level Server wide
http://blogs.msdn.com/b/ialonso/archive/2012/11/26/how-to-set-the-default-transaction-isolation-level-server-wide.aspx
Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers
My TechNet Wiki Articles -
Isolation level and performance impact?
Hi
I'm new to BDB JE and building some prototypes to evaluate it.
Given a simple usecase of storing the following key/value pair <String,List<Event>> mapping a user to his/her list of events, in the db. New events are added for the user, this happens (although fairly rarely) concurrently.
Using Serializable isolation will prevent any corruption to the list of events, since the events are effectively added serially to the user. I was wondering:
1. if there are any lesser levels of isolation that would still be adequate
2. using Serializable isolation, is there a performance impact on updating users non concurrently (ie there's no lock contention since for the majority of cases concurrent updates won't happen) vs the default isolation level?
3. building on 2. is there performance impact (other than obtaining and releasing locks) on using transactions with X isolation during updates of existing entries if there are no lock contention (ie, no concurrent updates) vs not using transactions at all?
Thanks!
PeterHave you seen this section of the Getting Started Guide on isolation levels in JE? http://www.oracle.com/technology/documentation/berkeley-db/je/TransactionGettingStarted/isolation.html
Our default is Repeatable Read, and that could be sufficient for your application depending on your access patterns, and the semantic sense of the items in your list. I think you're saying that the data portion of a record is the list of events itself. With RepeatableRead, you'll always see only committed data, and retrieving that record from a JE database will always return a consistent view of a given list. See http://www.oracle.com/technology/documentation/berkeley-db/je/TransactionGettingStarted/isolation.html#serializable for an explanation of what additional guarantee you get with Serializable.
2. using Serializable isolation, is there a
performance impact on updating users non concurrently
(ie there's no lock contention since for the majority
of cases concurrent updates won't happen) vs the
default isolation level?Yes, there is an additional cost. When using Serializable isolation, additional locks are taken on adjacent data records. In addition to the cost of acquiring the lock (which would be low in a non-contention case), there may be additional I/O needed to fetch adjacent data records.
3. building on 2. is there performance impact (other
than obtaining and releasing locks) on using
transactions with X isolation during updates of
existing entries if there are no lock contention (ie,
no concurrent updates) vs not using transactions at
all? In (2) we compared the cost of Serializable to RepeatableRead. In (3), we're comparing the cost of non-transactional access to the default Repeatable Read transaction.
Non-transactional is always a bit cheaper, even if there is no lock contention. On top of the cost of acquiring the locks, non-transactional operations use less memory and disk space, and execute some transaction setup and teardown code. If there are concurrent operations, even in there is no contention on a given lock, there could be some stress on the lock table latches and transaction tables. That said, if your application is I/O bound, the cpu differences between non-txnal and txnal operations becomes more of a secondary factor. If you're I/O bound, the memory and disk space overhead does matter, because the cache is more efficiently used with non-txnal operations.
Regards,
Linda
>
Thanks!
Peter -
Solaris 10 and Hitachi LUN mapping with Oracle 10g RAC and ASM?
Hi all,
I am working on an Oracle 10g RAC and ASM installation with Sun E6900 servers attached to a Hitachi SAN for shared storage with Sun Solaris 10 as the server OS. We are using Oracle 10g Release 2 (10.2.0.3) RAC clusterware
for the clustering software and raw devices for shared storage and Veritas VxFs 4.1 filesystem.
My question is this:
How do I map the raw devices and LUNs on the Hitachi SAN to Solaris 10 OS and Oracle 10g RAC ASM?
I am aware that with an Oracle 10g RAC and ASM instance, one needs to configure the ASM instance initialization parameter file to set the asm_diskstring setting to recognize the LUNs that are presented to the host.
I know that Sun Solaris 10 uses /dev/rdsk/CwTxDySz naming convention at the OS level for disks. However, how would I map this to Oracle 10g ASM settings?
I cannot find this critical piece of information ANYWHERE!!!!
Thanks for your help!You don't seem to state categorically that you are using Solaris Cluster, so I'll assume it since this is mainly a forum about Solaris Cluster (and IMHO, Solaris Cluster with Clusterware is better than Clusterware on its own).
Clusterware has to see the same device names from all cluster nodes. This is why Solaris Cluster (SC) is a positive benefit over Clusterware because SC provides an automatically managed, consistent name space. Clusterware on its own forces you to manage either the symbolic links (or worse mknods) to create a consistent namespace!
So, given the SC consistent namespace you simple add the raw devices into the ASM configuration, i.e. /dev/did/rdsk/dXsY. If you are using Solaris Volume Manager, you would use /dev/md/<setname>/rdsk/dXXX and if you were using CVM/VxVM you would use /dev/vx/rdsk/<dg_name>/<dev_name>.
Of course, if you genuinely are using Clusterware on its own, then you have somewhat of a management issue! ... time to think about installing SC?
Tim
--- -
Isolation level and optimist/pessimist locking
I am using baen managed transaction in which i have set the isolstion level according to my use...
Now whrer does the concept of Optimist/pessimist locking comes if i have set the isolation level(it should be always pessimist locking in this case??) ???I am using baen managed transaction in which i have set the isolstion level according to my use...
Now whrer does the concept of Optimist/pessimist locking comes if i have set the isolation level(it should be always pessimist locking in this case??) ??? -
Setting the Isolation Level to Read Uncommitted
Hello All,
We are using BO XI r3 and SQL Server 2008. I would like to change the isolation level of the connection to read uncommitted. There are 2 options that i could by Googling..
1. Making changes in the SBO file... this didnt work
2. Making changes in the connectinit... even this didnt work
i am not sure if there is anything else to done... but i tried quering a table with a lock, the report got stuck so i am guessing that the settings didnt workHi
this is the only method for changing the transaction isolation level.
Locate the path to your odbc.sbo file
Click the connection in UDT and when server responds Click the Details button
scroll down to the sbo line
That is the file location of your sbo file (this will be the same on client and server)
This change needs to be done, for client and servers both
The isolation can only be set for the global connection. Not per universe.
Locate the file and make a backup before making any changes
Find the Tag
<DataBase Active="Yes" Name="MS SQL Server 2008">
Below that tag should be a "Force SQLExecute" Parameter
Like This
<Parameter Name="Force SQLExecute">Procedures</Parameter>
ADD this line
<Parameter Name="Transaction Isolation Level">READ_UNCOMMITTED</Parameter>
Save the odbc.sbo
After client and server are changed
Restart SIA
Run the webi document again.
Locations of the sbo file:
R2: <Installation Directory>:\Program Files\Business Objects\BusinessObjects Enterprise 11.5\win32_x86\dataAccess\connectionServer\rdbms
R3: <Installation Directory>:\Program Files\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\dataAccess\connectionServer\rdbms
BI4: <Installation Directory>:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\dataAccess\connectionServer\rdbms
To make these changes effect, you have to restart ‘CMS server’, ‘the Connection Servers’, ‘Webi Report Server’ from ‘Central Configuration Manager’ (CCM).
Information is available in the Data Access guide
Jacqueline -
Ssis transction isolation levels : Dirty read
Step 1 : I set the Isolation level property as ReadCommitted at the
Data Flow Task (Please check the below image 1). Still I can read data in SQL server.
Step 2 : I set the Isolation level property as ReadCommitted at the Package level (Please check the below image 2). Still I can read data in SQL server.
Please help me. How to set it up and lock the Dirty read.
Maheswaran JayaramanThanks lot for your reply.
I'm processing the data in Database 'A'. after the process is done, I'm transferring around 300,000 records from Database 'A' to database 'B'. when transferring the data, end user should not read the partial data. How to do it.
I tried Chaos & ReadUnCommitted. still it's not working. Please help
Maheswaran Jayaraman
Don't play with the isolation levels in this case.
You just need to encapsulate the operation into a Sequence Container so if something fails you rollback the whole thing as a unit of work.
Arthur
MyBlog
Twitter -
Can't find how and where to downaload the Oracle Client 8i and Developer 6i
All,
I am looking for downloads at OTN for the following.
1. Oracle Client 8i
2. Oracle Forms and Reports 6i
I had them installed on my m/c but lately I have been getting SQL*Net connection failures. I have been suggested to install the whole developer tools again.
Any help in this regard is appreciated.
Regards,
Susheel K Raina.Here is the link - I just verify prior to posting it here.
http://otn.oracle.com/software/products/forms/content.html
For the Oracle 8i client, download the 8i database server and do a custom installation - client installation is one of the options.
hope this proves useful
regards -
Oracle XA driver and isolation level
We have an Entity EJB that has isolation level specified in its
deployment descriptor and everything works fine if we use the non-XA
Oracle 9i driver.
However when we use the Oracle 9i Release 2 XA driver we get the
following exception:
java.sql.SQLException: Due to vendor limitations, setting transaction
isolation for "Oracle 8.1.7 XA" JDBC XA driver is not supported.
at
weblogic.jdbc.jta.DataSource.setTxIsolationFromTxProp(DataSource.java:1126)
at
weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1109)
at weblogic.jdbc.jta.Connection.getXAConn(Connection.java:145)
at weblogic.jdbc.jta.Connection.getAutoCommit(Connection.java:247)
at
weblogic.jdbc.rmi.internal.ConnectionImpl.getAutoCommit(ConnectionImpl.java:173)
at
weblogic.jdbc.rmi.SerialConnection.getAutoCommit(SerialConnection.java:164)
Note the 8.1.7 version that the container prints. The driver is
definitely 9i and not 8.1.7 and it's the very first thing in the classpath.
Is this a problem with the driver really or is it a WLS issue?
Thanks,
DejanHi,
I removed the transaction isolation level setting from the deployment
descriptor and it works now as expected.
But in the meanwhile I also ran a test by using the driver directly
without Weblogic and I was able to successfully set the transaction
isolation level on the XA connections so I believe it's a Weblogic problem.
Dejan
Deyan D. Bektchiev wrote:
Yes,
We know about this but we just try to set it to the default one
(READ_COMMITED) which is probably redundant for Oracle but might not
be the default one for another DB vendor.
Here is the part of the deployment descriptor:
<transaction-isolation>
<isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
<method>
<ejb-name>Event</ejb-name>
<method-name>*</method-name>
</method>
</transaction-isolation>
Dejan
Slava Imeshev wrote:
Deyan,
I'm not 100% sure, but AFAIR oracle doesn't support all isolation
levels.
Which level do you set? Could you show us this part of the deployment
descriptor?
Slava
"Deyan D. Bektchiev" <[email protected]> wrote in message
news:[email protected]...
Thanks for the reply Sree,
Yes the 9i driver is the very first thing in the classpath as otherwise
we wouldn't even be able to connect to the 9i database with the 8.1.7
driver (we were getting lots of other exceptions when we were still
using the 8.1.7 driver).
I'll try removing the setting of the isolation level and I'll post the
result to the newsgroup.
Dejan
Sree Bodapati wrote:
hi Deyan,
java.sql.SQLException: Due to vendor limitations, setting
transaction
isolation for "Oracle 8.1.7 XA" JDBC XA driver is not supported.
should not have showed up with wrong version of oracle. If you can
verifiy
that the thin driver is the first thing in the classpath and you are
indeed
using the thin driver, This is a bug.
But in this case it looks like you need to remove the
TransactionIsolation
level from the EJB descriptor to get this to work. can you try that? I
will
forward this to one of our EJB engineers and see if we can get some
help
for
you.
sree
"Deyan D. Bektchiev" <[email protected]> wrote in message
news:[email protected]...
Sree,
We already did but the only answer we got was that the Oracle 9i
Release
2 driver was not at all supported by Weblogic 7.0 SP1.
But the certification page says that it is even certified...
So which one is true: The Oracle 9i Release 2 driver is not
supported or
is supported?
--dejan
Sree Bodapati wrote:
Please file a support case for this at [email protected]
"Deyan D. Bektchiev" <[email protected]> wrote in message
news:[email protected]...
We have an Entity EJB that has isolation level specified in its
deployment descriptor and everything works fine if we use the
non-XA
Oracle 9i driver.
However when we use the Oracle 9i Release 2 XA driver we get the
following exception:
java.sql.SQLException: Due to vendor limitations, setting
transaction
isolation for "Oracle 8.1.7 XA" JDBC XA driver is not supported.
at
weblogic.jdbc.jta.DataSource.setTxIsolationFromTxProp(DataSource.java:1126
at
weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1109)
at weblogic.jdbc.jta.Connection.getXAConn(Connection.java:145)
at
weblogic.jdbc.jta.Connection.getAutoCommit(Connection.java:247)
at
weblogic.jdbc.rmi.internal.ConnectionImpl.getAutoCommit(ConnectionImpl.jav
a
>
173)
at
weblogic.jdbc.rmi.SerialConnection.getAutoCommit(SerialConnection.java:164
Note the 8.1.7 version that the container prints. The driver is
definitely 9i and not 8.1.7 and it's the very first thing in the
classpath.
Is this a problem with the driver really or is it a WLS issue?
Thanks,
Dejan -
Setting isolation level with JDriver for Oracle/XA
edocs (http://e-docs.bea.com/wls/docs70/oracle/trxjdbcx.html#1080746) states that,
if using jDriver for Oracle/XA you can not set the transaction isolation level
for a transaction and that 'Transactions use the transaction isolation level set
on the connection or the default transaction isolation level for the database'.
Does this mean that you shouldn't try to set it programatically (fair enough)
or that you can't set it in the weblogic deployment descriptor either? Also anybody
got any idea what the default is likely to be if you are using an Oracle 9iR2
database? Is this determined by some database setting?IJ wrote:
edocs (http://e-docs.bea.com/wls/docs70/oracle/trxjdbcx.html#1080746) states that,
if using jDriver for Oracle/XA you can not set the transaction isolation level
for a transaction and that 'Transactions use the transaction isolation level set
on the connection or the default transaction isolation level for the database'.
Does this mean that you shouldn't try to set it programatically (fair enough)
or that you can't set it in the weblogic deployment descriptor either? Also anybody
got any idea what the default is likely to be if you are using an Oracle 9iR2
database? Is this determined by some database setting?The system should honor the setting defined in the deployment descriptor,
however, for oracle it may not be helpful to change it. Oracle provides two
isolation levels. The default is always READ_COMMITTED. The other
setting is SERIALIZABLE, but this hurts performance, and is also problematic
in the way oracle implements it. For instance, even if you set SERIALIZABLE,
oracle will not lock read data. It will allow other transactions to read and/or
alter data trhat another ongoing SERIALIZABLE transaction has read. The
only way to really lock read data in oracle is to issue oracle-specific SQL in
your select: "SELECT ..... FOR UPDATE".
All in all, you should collect a strong case for why you can't proceed with
READ_COMMITTED first. Then you should research oracle's recommendations
(and their problem record) with SERIALIZABLE.
Joe Weinstein at BEA -
Setting transaction isolation level for jDriver Oracle/XA
edocs (http://e-docs.bea.com/wls/docs70/oracle/trxjdbcx.html#1080746) states that,
if using jDriver for Oracle/XA you can not set the transaction isolation level
for a
transaction and that 'Transactions use the transaction isolation level set on
the connection
or the default transaction isolation level for the database'. Does this mean that
you shouldn't try to set it programatically (fair enough) or that you can't set
it in the weblogic deployment descriptor either? Also anybody got any idea what
the default is likely to be if you are using
an Oracle 9iR2 database?Ian,
The default for Oracle (any version) is ReadCommitted. The only other
isolation level Oracle supports is Serializable but it's implemented in
such a way that you will be allowed to continue until commit time and
only then you might get an exception stating the the access for that
transaction could not be serialized.
I don't know for the jDriver but if you use the Oracle Thin XA driver
even if you set the isolation level in your descriptor you will get an
exception from Weblogic. It is a Weblogic bug and you can contact
[email protected] to get a patch.
Regards,
Dejan
IJ wrote:
edocs (http://e-docs.bea.com/wls/docs70/oracle/trxjdbcx.html#1080746) states that,
if using jDriver for Oracle/XA you can not set the transaction isolation level
for a
transaction and that 'Transactions use the transaction isolation level set on
the connection
or the default transaction isolation level for the database'. Does this mean that
you shouldn't try to set it programatically (fair enough) or that you can't set
it in the weblogic deployment descriptor either? Also anybody got any idea what
the default is likely to be if you are using
an Oracle 9iR2 database? -
Memory and No. of Processor calculation for Oracle EBS R11 and R12
Can some one please tell me …. How to calculate required Memory and No. of Processors for Oracle EBS R11 and R12.
For example we have 50 Concurrent users and 100 named (i.e. the users which are doing only Data entry.), so how to How to calculate required Memory and No. of Processors
Please guide me on the same.
Thanks,Please refer to the following links, it may be helpful:
Oracle Applications Benchmark White Papers
http://www.oracle.com/apps_benchmark/html/white-papers-e-business.html
Oracle Applications Standard Benchmark White Papers
http://www.oracle.com/apps_benchmark/html/white-papers.html
Hardware requirements for Oracle APPS
Hardware requirements for Oracle APPS -
Dear Experts, have a question reqarding compatibility of SRM 4.0 (SRM SERVER 500) on Oracle 9.2 with ECC 6.0 (Oracle 10.x).
Currently we are on SRM 4.0 (Oracle 9.2) and R/3 4.6c (oracle 9.2) and we wanted to know if SRM 4.0 will work with ECC 6.0 on Oracle 10.2. Ours is Classic Scenario and the PR/PO are all created on the backend R/3 system for the SRM shopping cart.
Also the same concern for BW 3.5 (Oracle 9.2) with ECC 6.0 (Oracle 10.2). Currently they both use Oracle 9.2. We will not be using the BI Component in ECC , but will continue to use the BW which is running on its own instance. Also I could not find any SAP document that clearly states that the Oracle versions could be different for different components. Please help clarify and direct me to the documentation link. Thanks
Regards
Gabriel BertrandIf you refer to the SRM Master guide under service.sap.com, you will get the clear picture.
Regards, IA -
Oracle 8i, Oracle 9i AS, and J2EE Conformance. What for What ?
I am very desappointed by the way Oracle is packaging and delivering successive versions of "Oracle JVM" suites, and the confusion they are creating with so called "Oracle 9i AS" ...
As stated in documentations,
1- Oracle 8i release 3 (8.1.7) has a JVM which conform to JSP 1.1, Servlet 2.2 and EJB 1.1 specifications. But no one affirm that we have conformance with J2EE.
2- In the same time, Oracle have release a "new and replace old version" of his application server named "Oracle 9i AS" which is limited to JSP 1.0, servlet 2.1 and EJB 1.? specification. The related documents present the product as all in one package containing also an oracle 8i database.
3- Oracle is preparing the next release of the best next release named "Oracle 9i" with all conformance to J2EE.
I please, ask to Oracle Staff to stop create more confusion and give a more precision in his orientation as Application Server Provider. To be conform to standard specifications and let developpers have opportunities to choose beetween Oracle extensions and standard API. I am since waiting for oracle to put his internet tools and server containers in conformance with J2EE.
I don't want to give strategic lesson to anyone, but I am sure Oracle by doing so, is differing many Web projects from going with his Application Server suite. The actual solution is not wide open, for portable internet application solutions.
So ! I am still waiting for a great solution, perhaps "Oracle 9i".
nullFor the best explanation possible , please review the technical whitepapers on ias on this web page :
http://otn.oracle.com/products/ias/
Especially the following :
"Oracle9i Application Server Technical White Paper" at : http://otn.oracle.com/products/ias/pdf/9ias_102.pdf
and
"Oracle9i Application Server Database Cache" at : http://otn.oracle.com/products/ias/pdf/db_cache_twp.pdf
I can't do justice to the design as well as the whitepapers but let me make an attempt.
Please see thread :
http://technet.oracle.com:89/ubb/Forum75/HTML/000106.html
Maybe you are looking for
-
BODS 3.1 : SAP R/3 data extraction -What is the difference in 2 dataflows?
Hi. Can anyone advise as to what is the difference in using the data extraction flow for extracting Data from SAP R/3 ? 1)DF1 >> SAPR/3 (R3/Table -query transformation-dat file) >>query transformation >> target This ABAP flow generates a ABAP progra
-
Not working properly , long delays on sys pref , audio midi set up
The only thing i did recently was update to 10.6.6 and install adobe design suite cs5 ( so not much lol) i first thought this was a log in programme so i deleted all start up items then creted a new account with admin authority but still the problem
-
Problem during deployment of axis (stock) examples
Hi all I am getting problem during the deployment of stock example given in the apache site. Even i am not getting the right response from the URL http://localhost:8080/axis/services/Version?method=getVersion and http://localhost:8080/axis/EchoHeader
-
Why does CTRL+ enlarge images on some pages, not others?
I have a website with many pages. On some pages, CTRL+ enlarges the images, on others, it enlarges the TEXT BUT THE IMAGE ACTUALLY SHRINKS!. An example of a page where CTRL+ does not work: http://www.microscope-antiques.com/acme4.html An example of w
-
[W8.1]Creating a trial app with a feature that expires after being used twice
I want to add a feature to my app that user can avail only twice or thrice in the trial mode. I am unable to figure out which purchase mode should I implement. I successfully implemented the in-app-purchase for making the feature available for lifeti