Package scope variable

I created package variables in specification
of the package.
And all procedures and function can see these
variables.
The question is: What about transaction?
If two users start using these variables,
does it influence each other or every user
will work in his own scope?
Sorry for dummy question.
Thanks Anatoly.

Since Variables declared in the Package variables r global variables will be updated whenever accessed globally.Its not session dependant.
Might be a problem when two users access it at the same time.
<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by avalko:
I created package variables in specification
of the package.
And all procedures and function can see these
variables.
The question is: What about transaction?
If two users start using these variables,
does it influence each other or every user
will work in his own scope?
Sorry for dummy question.
Thanks Anatoly.<HR></BLOCKQUOTE>
null

Similar Messages

  • C# SSIS Script component - Save List String to Object package-scope variable and read it in Script Task

    before posting this i was searching this on internet but was not able to find info regarding my specific case:
    i have a DataFlow Task with "Error output" pointing from FlatFile to
    Script Component that does below (variable "ErrorMessageList" is listed under ReadWriteVariables property):
    List<string> lsErrors = new List<string>();
    public override void Input0_ProcessInputRow(Input0Buffer Row)
    lsErrors.Add("test1");
    lsErrors.Add("test2");
        void PostExecute()
            base.PostExecute();
            Variables.ErrorMessageList = lsErrors;
    Then the DataFlow points to a ScriptComponent where this object variable is listed under ReadOnlyVariables property and does the below:
    public void Main()
    List<string> lsErrors = (List<string>)Dts.Variables["ErrorMessageList"].Value;
    and that is where i get exception-has-been-thrown-by-the-target-of-an-invocation
    What is wrong here?
    (i have mistakenly edited this first post before, so i tried to manually put it back to original version)

    i have missed the "override" keyword...
    public class ScriptMain : UserComponent
    public class UserComponent: ScriptComponent
    namespace Microsoft.SqlServer.Dts.Pipeline
    public class ScriptComponent
    // i should have seen this before
    public virtual void PostExecute();
    i believe i must have deleted the PostExecute method definition right after the ScriptComponent generated the script for me... and then when i've realized that i can't change ReadWriteVariables as a part of:
    public override void Input0_ProcessInputRow(Input0Buffer Row)
    // --- can't change ReadWriteVariables here
    then i had to add the method back but forgot that the base method is virtual
    thanks for this hint, Russ!

  • Method Scope variables controls Multi-Threading !

    Hye there Experts !
    First, let me thank you all for such a brain-stuff sharing around; feel nice to be a part here.
    While browsing through the below article, found something confusing...kindly clarify.
    http://www.javaworld.com/javaworld/jw-07-2004/jw-0712-threadsafe.html?page=1
    Extract from the above discussion I understand :
    when a variable is moved to method scope instead of instance scope, synchronization is achieved.
    How is this true for servlets ???
    Method scope variables are available only during method call I think...here, since this is a servlet, there will be only one instance and if many (lets say 10) requests hits this servlet object, all these threads will read same counter as all of them enter into this only one method of this object,
    so...this should be still not thread safe I guess.
    I didn't want to execute and see results of this code, but I am trying to understand the key at first.
    Please guide me before brain blows... :-)
    Would also appreciate any references that really says true things about
    'synchronization for enterprize (handle huge requests) web apps - technques for servlets and any other stuff'
    Thanks again guys, have a wonderful time.

    feel nice to be a part here.Welcome to the mad-house ;-)
    Method scope variables are available only during method callWARNING: I'm no guru, so this may be misleading or just plain wrong.. but as I understand it:
    Yep a "local" variable exists only the context of the execution of it's containing method... so a local variable is implicitly bound to the thread that created it (by invoking the method in which the local is declared)... a local variable can't be accessed directly by another thread simply because the other thread has no access-path to the variable (you can't expose a local through getters & setters)... hence locals are thread safe.
    The important bit is that it's the thread which "owns" the local variable... not the declaring method... if the method is executed concurrently by two threads, each thread will have its own private copy of all the local variables.
    One other question though: are locals in static methods still thread safe? I'm not sure.
    package forums;
    class NonfinalLocalVariableInThreadTest
      public static void main(String[] args) {
        try {
          new Thread(new Runnable() {
            public void run() {
              System.out.println(args[0]);
          }).start();
        } catch (Exception e) {
          e.printStackTrace();
    compiler error
    C:\Java\home\src\forums>"C:\Program Files\Java\jdk1.6.0_07\bin\javac.exe" -Xlint -d c:\java\home\classes -cp c:\java\home\src;.;c:\java\home\classes c:\java\home\src\forums\NonfinalLocalVariableInThreadTest.java
    C:\Java\home\src\forums\NonfinalLocalVariableInThreadTest.java:9: local variable args is accessed from within inner class; needs to be declared final
              System.out.println(args[0]);
                                 ^
    1 error
    Output completed (0 sec consumed)

  • Package Scope - Constants

    I am trying to figure out the best way to implement a CONSTANTS class for my project. I have all of my files defined in a package. And I have included the class where I defined my package constants in that package. I have defined them like:
    static final int a = 1;
    So they have package level access (not public/private). And I can access them when a direct call:
    int b = consts.a;
    But, I am a little confused on the use of defining this way, using import, package scope, interfaces. Looking at the tutorial:
    http://java.sun.com/docs/books/tutorial/together/index.html
    I see that they have a constants class that is an interface which they also import into other classes when they want to use it AND they call it explicitly with the class name prefix. Running a little test, I see that without any of this, a class can access a variable defined without public/private definition and/or package and/or interface and/or imports. So, it doesn't seem like any of these are really necessary.
    Simple question: What is the best way to define and access constants in one place for a project?

    A question many of us ask but never really come up with a satisfactory answer.
    Firstly are they real constants? I.e. will they never change in the life of the program (if they might change then they should be in a config file).
    Next thing to bare in mind is how the java compiler works. Say I have class A
    class A
      public static final int A_NUMBER = 0;
    }which is use somewhere else
    class B
    void aMethod() {
    int something = A.A_NUMBER;
    }Now if I compile it all, it works fine. If I know go and change A_NUMBER to be another value and recompile class A only, then the reference to A.A_NUMBER will still be 0!! The compiler is actually copying the value accross.
    So, next question to ask. what is you build policy? Do you always recompile everything? If so then you should be alright with a load of static final values in an interface somewhere.
    Other things to bare in mind is were are constants used. If the constants are used in one class only then they should be defined in this class with a private modifier.
    I would normally suggest still using get methods to get hold of constants, just to make sure the senario with the compiler never happens.
    If you tell me what your constants are I can probably give you a better ideas as to what to do with them.
    One the whole, the only time you would want to put them all in one place was if you wanted to find them quickly for changing them. In which case you should have a config file instead.

  • Problem with merge using package (row)variable

    We're doing an ETL project, where we have to validate data coming from staging tables before inserting / updating them in our data tables.
    We use a validate function for this, in which we 'test' our mappings and business logic, and returns 'OK' if no errors were occured.This function is called in the WHERE clause, and populates a package row variable. From this variable, values are read in the insert / update statement, using a get function.
    The problem is that sometimes, with a data set with NO duplicate keys, we get an ORA-00001 error, and sometimes not.
    Does anyone have any idea why this error could occur ? We're on Oracle 9.2.0.5.0.
    For the demo mentioned below, the following statement fails , while it succeeds if we add 'and rownum < 11' to the where clause :
    merge into target_tab t
    using (select st.* from source_tab st where demo_pack.assign_var(st.attrib_1, st.attrib_2, st.attrib_3) = 'OK') s
    on (t.attrib_1 = s.attrib_1 and
    t.attrib_2 = s.attrib_2)
    when matched then update
    set t.attrib_3 = demo_pack.get_attrib('ATTRIB_3')
    when not matched then
    insert(attrib_1, attrib_2, attrib_3)
    values (demo_pack.get_attrib('ATTRIB_1'), demo_pack.get_attrib('ATTRIB_2'), demo_pack.get_attrib('ATTRIB_3'));
    Can anyone explain to me why this statement sometimes fails, and other times not ?
    Thanks in advance .
    demo tables / packages :
    create table source_tab
    attrib_1 varchar2(30),
    attrib_2 varchar2(30),
    attrib_3 varchar2(200)
    create table target_tab
    attrib_1 varchar2(30) not null,
    attrib_2 varchar2(30) not null,
    attrib_3 varchar2(200),
    constraint pk_target_tab primary key(attrib_1, attrib_2)
    insert into source_tab
    select table_name, column_name, data_type
    from user_tab_columns;
    commit;
    create or replace package demo_pack as
    function assign_var(p_attrib_1 in target_tab.attrib_1%type,
    p_attrib_2 in target_tab.attrib_2%type,
    p_attrib_3 in target_tab.attrib_3%type) return varchar2;
    function get_attrib(p_name in varchar2) return varchar2;
    end;
    create or replace package body demo_pack as
    g_rec target_tab%rowtype;
    function assign_var(p_attrib_1 in target_tab.attrib_1%type,
    p_attrib_2 in target_tab.attrib_2%type,
    p_attrib_3 in target_tab.attrib_3%type) return varchar2 is
    begin
    g_rec.attrib_1 := p_attrib_1;
    g_rec.attrib_2 := p_attrib_2;
    g_rec.attrib_3 := p_attrib_3;
    return 'OK';
    end;
    function get_attrib(p_name in varchar2) return varchar2 is
    l_return varchar2(200);
    begin
    if p_name = 'ATTRIB_1' then
    l_return := g_rec.attrib_1;
    elsif p_name = 'ATTRIB_2' then
    l_return := g_rec.attrib_2;
    elsif p_name = 'ATTRIB_3' then
    l_return := g_rec.attrib_3;
    end if;
    return l_return;
    end;
    end;
    /

    It's not necessarily that the problem is within your package code. As long as UNIQUE constraint exists on DEST table, any MERGE statement may fail with ORA-00001 due to concurrent updates and inserts taking place.
    Of course, it's just my guess but consider the following scenario (three sessions modify DEST table in parallel – and to keep this example clear, I put their commands in chronological order):
    S#1>  create table dest(x primary key, y) as
      2   select rownum, rownum
      3     from dual
      4  connect by level <= 5;
    Table created.
    S#1>  create table src(x, y) as
      2   select rownum + 1, rownum + 1
      3     from dual
      4  connect by level <= 5;
    Table created.
    S#1> select * from src;
             X          Y
             2          2
             3          3
             4          4
             5          5
             6          6
    S#1> select * from dest;
             X          Y
             1          1
             2          2
             3          3
             4          4
             5          5
    S#2> -- Now, session #2 will update one row in DEST table
    S#2> update dest
      2     set y = 40
      3   where x = 4;
    1 row updated.
    S#2> select * from dest;
             X          Y
             1          1
             2          2
             3          3
             4         40
             5          5
    S#1> -- Session #1 issues the following MERGE:
    S#1> merge into dest d
      2  using (select * from src) s
      3     on (s.x = d.x)
      4   when matched then update set d.y = s.y
      5   when not matched then insert (d.x, d.y)
      6        values (s.x, s.y);
    -- At this point, session #1 becomes blocked as it can not modify row locked by session #2
    S#3> -- Now, session #3 inserts new row into DEST and commits.
    S#3> -- MERGE in session #1 is still blocked.
    S#3> insert into dest values (6, 6);
    1 row created.
    S#3> select * from dest;
             X          Y
             1          1
             2          2
             3          3
             4          4
             5          5
             6          6
    6 rows selected.
    S#3> commit;
    Commit complete.
    S#2> -- Session #2 rolls back its UPDATE.
    S#2> rollback;
    Rollback complete.
    -- Finally, session #1 is getting unblocked, but...
    merge into dest d
    ERROR at line 1:
    ORA-00001: unique constraint (MAX.SYS_C0032125) violated
    S#1>Hope this helps,
    Andrew.

  • How long is the life time of process scope variable ?

    Hi All,
    How long is the life time of process scope variable befoer it expires ?
    Is it the same with the life time of session scope ?
    How can we set the value in OAS when deployment ?
    Thank you,
    xtanto

    Hi,
    http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/doc/devguide/communicatingBetweenPages.html
    " Finally, processScope never empties itself; the only way to clear processScope is to manually force it to clear:
    AdfFacesContext afContext = AdfFacesContext.getCurrentInstance();
    afContext.getProcessScope().clear();
    Otherwise the variable lives for the duration of the window process. The referenced document above also shows how to set a variable to process scope
    Frank

  • Suggestion: JavaScript scope variables and event listeners

    Invoking Java from JavaScript in ADF Mobile is surprisingly efficient although it is still relatively expensive compared to plain HTML5/JavaScript/CSS stuff in the native UIWebView. But whenever you want to do something "dynamic" you have to revert to invoking Java, even for simple use cases. As far as I can see it as soon as you use listeners on components, managed beans or data controls you're in the Java world.
    Why not add similar concepts that are pure JavaScript implementations for performance. As an example I want to have a SelectOneButton component and depending on its state I want to enable/disable an InputText component. As far as I can see it I would need Java to make this happen. First, I would need a Java managed bean to keep the enabled/disabled state. Then I would set the value property of the SelectOneButton with an EL expression to this managed bean property, or for other scenarios use a Java based ActionListener to change the state. Then the InputText component could use an EL expression in its Disabled property.
    For this simple use case this would still perform fast, but real applications grow more complex.
    Why not have the option of creating JavaScript based managed "beans"? The could live on javaScriptPageFlowScope or javaScriptViewScope. Then the AMX components could reference this from EL and it would be even better if we can create pure javascript ActionListeners (or other listeners). This would make it similar to the choice with ADF Faces application between doing a server roundtrip with partial-page-rendering and using pure clientListeners and clientAttributes for optimal performance.
    For situations where we do need to power of Java, it would be great if we can access these javascript scope variables from Java.

    This is a good suggestion, Wilfred. We haven't gotten to this level of optimization in the framework yet. At some point it's likely we'll have an option for the developer to specify the layer to handle the method.
    Thanks

  • Dataype of cfdocument scope variables

    Hello,
    It seems that since I installed the 8.0.1 updater the
    datatype of the cfdocument scope variables (eg totalpagecount and
    currentpagenumber) has been changed. Before the update the datatype
    was numeric, but now it seems unknown. This means I can't use
    mathematical expressions to these variables. Is this a new bug in
    CF 8.0.1 or....??
    Frank

    I have done some tests and it seems that the variables are
    replaced by {currentpagenumber} and {totalpagecount} and I think
    these variables are filled in by the pdf reader. I think we need
    some pdf programming guide to find out how to manipulate these
    variables.
    I have no clue why Adobe decided to change this behaviour in
    CF 8.0.1.

  • SQL Queries don’t recognize Package member variables.

    Hi,
    I have a package defined like this:
    CREATE OR REPLACE PACKAGE PROD.PKG_BSYS_COMMON
    AS
    MAX_RETURN_ROWS NUMBER(6) :=1000;
    END PKG_BSYS_COMMON;
    The problem is that I cannot use MAX_RETURN_ROWS in my SQL queries:
    SELECT
    FROM
    CLIENT
    WHERE
    ROWNUM < PROD.PKG_BSYS_COMMON.MAX_RETURN_ROWS
    Is there any way to use that package member variable in my queries?
    This is a simplified explanation of our problem and it is very important for our business to avoid hardcoding constants in queries and define all of them in a central location. Is there a better way doing this?
    Any help would be appreciated,
    Alan

    CREATE OR REPLACE PACKAGE PKG_BSYS_COMMON
    AS
    function max_return_rows return number ;
    END PKG_BSYS_COMMON;
    CREATE OR REPLACE PACKAGE body PKG_BSYS_COMMON  as
    function max_return_rows return number is
    begin
    return(1000);
    end;
    end PKG_BSYS_COMMON;
    select pkg_bsys_common.max_return_rows from dual;
    MAX_RETURN_ROWS
               1000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Session scope variables and weird behaviour of AdfContext()

    Hello,
    what is the best method and correct API to create a session scope variable?
    I am currently using ADFContext().getCurrent().getSessionScope().get()/put(), but it looks like it has some problems: for some unkown reasons I loose the variable, that is get() returns null when called from a method of a (overridden)ViewRowImpl. Why does this happen?
    Thanks you in advance

    There are a couple of ways you can set values on a sessions scope but I would have to question if you really need a scope as high as session to accomplish what you want to do. At any rate, you should be able to store the value using the method you described but you could also try setting it using EL by using the setExpressionValue and resolveExpression methods in JSFUtils.java (you can find this in the latest fusion demo application). JSFUtils also has a getFromSession and storeOnSession that you could try.
    With all that said I don't think it is good practice to access scope variables from your model layer. You should write your method in the ViewRowImpl class to accept the value as a method parameter and then pass the value in through the binding layer or when invoking the method from your bean class.

  • Initialization of global/scope variables ONLY through ASSIGN?

    Is it only possible to initialize global resp. scope variables through an explicit ASSIGN?
    Or can I place e.g. a value="...." attribute inside the BPEL source code at the variable declaration
    to initialize it directly?
    Or even better: can I init the variable through JDeveloper GUI?
    Peter

    I looked this up on Oracle Support and there was one thread that it said that it could be resolved with a 11.1.1.6. to 11.1.1.6.2 patch update.
    We have one test environment on 11.1.1.6.6 to which we have uploaded the RPD to receive the same error, although it now additionally indicated a "Blacklisted Connection Pool". Here are the error details:\
    [2013-01-22T00:30:32.000-08:00] [OracleBIServerComponent] [ERROR:1] [] [] [ecid: 004osJjn__ADCgH_qt0FyY0006Py000000] [tid: e9c8a950] [nQSError: 17014] Could not connect to Oracle database. [[
    [nQSError: 17001] Oracle Error code: 12545, message: ORA-12545: Connect failed because target host or object does not exist
    at OCI call OCIServerAttach.
    [nQSError: 43059] Init block ‘XYZ’: Dynamic refresh of repository scope variables has failed.
    [2013-01-22T00:30:32.000-08:00] [OracleBIServerComponent] [ERROR:1] [] [] [ecid: 004osJjn__ADCgH_qt0FyY0006Py000000] [tid: e9c8a950] [43143] Blacklisted connection pool: 'ABC'
    This is the way I have defined the DSN for the OCI 10g/ 11g within the RPD connection pool:
    (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.53.36.93)(PORT=1541))(ADDRESS=(PROTOCOL=TCP)(HOST=10.53.36.94)(PORT=1541))(ADDRESS=(PROTOCOL=TCP)(HOST=10.53.36.95)(PORT=1541))(ADDRESS=(PROTOCOL=TCP)(HOST=10.53.36.96)(PORT=1541))(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=a.b.c)))
    My next test would be to individually test each host and see which one causes it to error out.
    Any insights of what I could look to additionally do?
    PS: The DBA is yet to get back with the exact version of the Oracle 11g DB but it is greater than 11.1.0.7 since that was the version they were running 6 months back and might have upgraded.

  • Print memory scope variables value

    All,
    How do i print all the memory scope variable and their values that are set via the MB or the taskflow or the UI page using setAction/PropertyListener ?
    I mean where should i write the code ?
    thnks
    Jdev11.1.1.5
    Edited by: in the line of fire on Oct 13, 2011 9:50 AM

    @Frank
    if you can detail this +"If the managed bean uses a HashMap to store values then the bean itself can be used to expose an interface for all of what you want it to do. So its an architecture decision to make (which you should do when designing the application)"+
    As of now what i am doing is
        public void printMemoryVariables(){
            logger.info("inside printMemoryVariables");
            AdfFacesContext adfFacesCtx = AdfFacesContext.getCurrentInstance();
            // get the PageFlowScope Params
            Map<String, Object> scopePageFlowScopeVar= adfFacesCtx.getPageFlowScope();
            // get the requestScope Params
            Map<String, Object> scopeRequestScopeVar= adfFacesCtx.getViewScope();
            Collection scopePageFlowScopeVarValues = scopePageFlowScopeVar.values();
            Collection scopePageFlowScopeVarKeys = scopePageFlowScopeVar.keySet();
            //obtain an Iterator for Collection
            Iterator itrValues = scopePageFlowScopeVarValues.iterator();
            Iterator itrKeys = scopePageFlowScopeVarKeys.iterator();
            //iterate through HashMap values iterator
            while(itrValues.hasNext() && itrKeys.hasNext()){
                logger.info("Key : " + itrKeys.next() +  "Values: " + itrValues.next());
        }And calling this in the initializer of the taskflow. But is it possible to get the values during the task flow execution

  • Package scope

    Hi guys I need to know about package scopes.what is the difference
    between private and protected object and when do we say a method or an object is not accessible in in the second class if you have two classes

    For private objects declared in ClassA, only methods within ClassA can reference the object.
    If you have ClassA and ClassB within the same package e.g. PackageA:
    ClassA cannot see ClassB's private objects but ClassA can see ClassB's protected objects.
    Classes with the same package can see each others protected objects but they cannot see each the other's private objects.
    Classes in another package PackageB cannot see protected methods in PackageA. It can only see protected methods for classes in it's own package PackageB and public methods in PackageA.
    Hope this helps.
    JB

  • About package global variable.

    Hi All,
    Could you please anyone tell me from which Data Dictionary tables we can find to definiton of Package global variables which is declared in specification part.
    I tried in ALL_ARGUMENTS but I failed to get it.
    Thanks in advance.

    Thanks James for you reply.
    We written an application using utPLSQL framework, which is used to write unit test cases for Oralce server side programs.
    In one of our Oracle package we have been using global variable and is been referred by all the public members.
    To initailize the package global variable based on our test case we need to know the package global variables.

  • Application scope variables ... an easier way or not ?

    Instead of sharing application scope variables through the
              servletContext()/application I am using a normal singleton class (or maybe
              static class) to share all my application varaiable. It works fine and it
              takes a lot less code to write.
              It seamed logical to do this a static classes or singletons are shared
              within a single servletContext/application (which there seems to be only one
              per WL instance anyway). (singleton is quite nice pattern coz. all
              jsp:useBeans with the application scope are by definition singletons)
              Has anoyne tried something similar or maybe know of the problem with this
              approach. I assume that server will never reinitialise application level
              variables ...... hope the assumption is correct. ....
              

    When you specify application scope, the JSP stores/retrieves the value
              into/from the servlet context. You may already know this, but it sounded
              like what you thought you were somehow avoiding.
              Cameron Purdy
              http://www.tangosol.com
              "Bohinc D" <[email protected]> wrote in message
              news:[email protected]..
              > Instead of sharing application scope variables through the
              > servletContext()/application I am using a normal singleton class (or maybe
              > static class) to share all my application varaiable. It works fine and it
              > takes a lot less code to write.
              >
              > It seamed logical to do this a static classes or singletons are shared
              > within a single servletContext/application (which there seems to be only
              one
              > per WL instance anyway). (singleton is quite nice pattern coz. all
              > jsp:useBeans with the application scope are by definition singletons)
              >
              > Has anoyne tried something similar or maybe know of the problem with this
              > approach. I assume that server will never reinitialise application level
              > variables ...... hope the assumption is correct. ....
              >
              >
              >
              

Maybe you are looking for

  • W530 system language problem

    Hello! I have W530 laptop; purchased it from Germany, but I do not speak German at all. After purchase on the first boot it offered me to choose system language (there was a note that it is not possible to change it later). There were 2 choices - Ger

  • Multiple session issue

    Hi, I have created SAP transaction ivews in my portal with SAP Logon tickets to connect r/3. End users are having tendency to open multiple browser window using Ctrl+N. This way they dont have to login many times and can have many portal window open.

  • How can I get an install of 10.7.5 for my MacPro 1,1

    I have a MacPro 1,1 which was working just beautifully until a few days ago when my email was hacked and I am certain that something is going on with the machine.  It crawls with operations it used to breeze through.  I've installed virus protection

  • OAS 4.0.8.3

    We are having the following setup: Hardware     : SUN Enterprise 10000 with 4CPUs and 4GB RAM OS Installed     : Solaris 8 (64-bit) SPARC DB Installed     : Oracle 8i Release 2 Version 8.1.6.1 OAS          : OAS 4.0.8.3 Enterprise Edition ( Single No

  • When i try to install firefox 33.1 or any version it says "Sorry Firefox cannot be installed. This version requires Windows XP SP2 or newer", I have SP3

    I cannot install the lastest addition of firefox on Windows XP Professional SP3. I currently have version 12.0 and when I click check for Updates it says Firefox is up to date. However almost all websites display a notices that says "Looks like you'r