When is prune() called on com.tangosol.util.Cache?

I'm trying to extend Cache as it very closely fits what I need to do with my application data expiration model. My question is: is prune() called BEFORE the cache fills up (that is, did the call that triggered the prune() succeed)?
I have to be able to signal to the upper application layers that a prune was forced and some data may no longer be valid. If prune was called AS the cache became full (rather than just after), I can signal the application that data was removed, and there is no threat to the correctness of the app.

Hi Kris
A further question along these lines: is prune() the
mechanism that is called to remove values that have
timed out, rather than when the Cache is full? No, <tt>prune()</tt> is not what is called for timed out entries. We have a separate method that is called to remove the specific entry that has expired. This is because within the Cache you can set expiry on an entry by entry basis.
I would also like to do periodic, timeout-based
expirations from my cache to avoid the full hit of
letting the cache fill all the way up before removing
any data.The Cache currently supports timeout-based expirations. You can either have a global cache-entry-timeout set (see constructors) or set it on an entry by entry basis. If an entry has a timeout set on it and it has expired the entry will be removed during the <tt>iterator()</tt> or <tt>toArray()</tt> calls.
Regards,
Rob

Similar Messages

  • Order cannot be cast to com.tangosol.util.MapEvent

    This code is causing an exception. How should I be writing this filter? I want to listen for events when the status changes for one specific Order object. That Order has an integer key property which is the same integer key value used to store it in the cache. The code causing the exception is:
        public void addStatusChangeListener() {
                Filter f1 = new ValueChangeEventFilter("OrderStatus");
                Filter f2 = new EqualsFilter("Key", this.getKey());
                Filter f3 = new AndFilter(f1,f2);
                Filter statusChangeFilter = new MapEventFilter(MapEventFilter.E_UPDATED, f3);
                System.out.println("ADD STATUS CHANGE LISTENER "+this.symbol+" "+this.getKey());
                this.getCache().addMapListener(this , statusChangeFilter, false);
    2009-09-18 10:52:54.796/238.692 Oracle Coherence GE 3.5/459 <Error> (thread=DistributedCache, member=1):
    Exception occured during filter evaluation: MapEventFilter(mask=UPDATED, filter=
    AndFilter(ValueChangeEventFilter(extractor=.OrderStatus()), EqualsFilter(.Key(), 189000006))); removing the filter...
    2009-09-18 10:52:54.796/238.692 Oracle Coherence GE 3.5/459 <Error> (thread=DistributedCache, member=1):
    java.lang.ClassCastException: oms.Order cannot be cast to com.tangosol.util.MapEvent
            at com.tangosol.util.filter.ValueChangeEventFilter.evaluate(ValueChangeEventFilter.java:69)
            at com.tangosol.util.filter.AllFilter.evaluate(AllFilter.java:56)
            at com.tangosol.util.filter.MapEventFilter.evaluate(MapEventFilter.java:178)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$Storage.prepareDispatch(DistributedCache.CDB:82)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$Storage.postInvoke(DistributedCache.CDB:10)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$Storage.invoke(DistributedCache.CDB:117)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache.onInvokeRequest(DistributedCache.CDB:50)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$InvokeRequest.run(DistributedCache.CDB:1)
            at com.tangosol.coherence.component.net.message.requestMessage.DistributedCacheKeyRequest.onReceived(DistributedCacheKeyRequest.CDB:12)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onMessage(Grid.CDB:9)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onNotify(Grid.CDB:136)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache.onNotify(DistributedCache.CDB:3)
            at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:37)
            at java.lang.Thread.run(Thread.java:619)Thanks,
    Andrew

    Ok, but isn't it just something wrong with how I wrote/used that filter?
    -Andrew
    public class Order implements Cloneable, Comparable, java.io.Serializable, MapListener {
        private String symbol = null;
        private OrderStatus orderStatus = OrderStatus.PENDING_NEW;
        private int id = 0; // java int max = 2,147,483,647
        private transient ArrayList<OrderStatusChangeListener> statusChangeListeners = new ArrayList<OrderStatusChangeListener>();
        public static NamedCache getCache() {
            if (cache == null) {
                System.out.println("Order...CacheFactory.getCache(\"orders\")");
                cache = CacheFactory.getCache("orders");
            return cache;
        public void send() {
            getCache().put(this.id, this);
        public static int sendMultiple(Iterable<Order> orders){
            int counter=0;
            HashMap m = new HashMap();
            for (Order o:orders){
                m.put(o.getKey(),o);
                counter++;
            getCache().putAll(m);
            return counter;
        public static class CancelProcessor extends AbstractProcessor {
            public Object process(InvocableMap.Entry entry) {
                Order o = (Order)entry.getValue();
                if (o.cancelCount == 0) {
                    o.cancelCount = 1;
                } else {
                    logger.info("ignoring dup. cancel req on " + o.symbol + " id=" + o.id);
                return o.cancelCount;
        public void cancel() {
            Filter f = new EqualsFilter("getCancelCount", 0);
            UpdaterProcessor up1 = new UpdaterProcessor("setCancelCount", new Integer(1));
            UpdaterProcessor up2 = new UpdaterProcessor("setCancelSubmittedTime", Base.getSafeTimeMillis() );
            CompositeProcessor cp = new CompositeProcessor(new InvocableMap.EntryProcessor[] {up1,up2});
            ConditionalProcessor x = new ConditionalProcessor(f, cp);
            getCache().invoke(key, x);
        private static NumberIncrementor ni1 = new NumberIncrementor("CancelCount", 1, false);
        public static void cancelMultiple(Collection<Integer> orderIds){
            getCache().invokeAll(orderIds, ni1);
        public static void cancelAllByAccount(String account){
            getCache().invokeAll( new EqualsFilter("getAccount", account), ni1);
        public void cancelAllowingMultipleCancelsOfThisOrder() {
            System.out.println("cancelAllowingMultipleCancelsOfThisOrder symbol=" + symbol + " key="+key+ " id=" + this.id);
            getCache().invoke(key, ni1);
            UpdaterProcessor up = new UpdaterProcessor("setCancelSubmittedTime", Base.getSafeTimeMillis() );
            getCache().invoke(key, up);
        public void entryInserted(MapEvent mapEvent) {
        public void entryUpdated(MapEvent mapEvent) {
            Order o = (Order)mapEvent.getNewValue();
            fireStatusChange(o);
        public void entryDeleted(MapEvent mapEvent) {
        public void removeStatusChangeListener(OrderStatusChangeListener listener) {
            synchronized (statusChangeListeners) {
                statusChangeListeners.remove(listener);
                if (statusChangeListeners.size()==0) {
                    this.getCache().removeMapListener(this, statusChangeFilter);
        private transient Filter statusChangeFilter=null;
        public void addStatusChangeListener(OrderStatusChangeListener listener) {
            if (statusChangeFilter==null) {
                Filter f1 = new ValueChangeEventFilter("OrderStatus");
                Filter f2 = new EqualsFilter("Key", this.getKey());
                Filter f3 = new AndFilter(f1,f2);
                statusChangeFilter = new MapEventFilter(MapEventFilter.E_UPDATED, f3);
            System.out.println("ADD STATUS CHANGE LISTENER "+this.symbol+" "+this.getKey());
            synchronized (statusChangeListeners) {
                if (statusChangeListeners.size()==0) {
                    this.getCache().addMapListener(this , statusChangeFilter, false);
                statusChangeListeners.add(listener);
        private void fireStatusChange(Order o ) {
            System.out.println("FIRE STATUS CHANGE: starting...");
            // do not depend on the firing of a status change to mean that the
            // status did certainly change.  Use the firing of status change as a
            // trigger to examine the order's status w/getStatus().
            System.out.println("1");
            synchronized (statusChangeListeners) {
                System.out.println("2");
                List<OrderStatusChangeListener> asdf = new LinkedList<OrderStatusChangeListener>(statusChangeListeners);
                System.out.println("3");
                for (OrderStatusChangeListener x : asdf) {
                    System.out.println("4");
                    try {
                        System.out.println("FIRE STATUS CHANGE: "+x);
                        x.dispatchOrderStatusChange(o);
                    } catch (java.util.ConcurrentModificationException e) {
                        logger.error("** fireStatusChange: ConcurrentModificationException " + e.getMessage());
                        logger.error(e.getStackTrace());
                        e.printStackTrace();
            System.out.println("FIRE STATUS CHANGE: done...");
        public int compareTo(Object o) { //assumes ID allways int.
            return this.key - ((Order)o).key;
        public boolean equals(Object o) {
            return (this.key == ((Order)o).key);
        public void setStatus(OrderStatus orderStatus) {
            this.orderStatus = orderStatus;
        public OrderStatus getStatus() {
            return orderStatus;
        public Integer getKey(){
            return key;
        private Integer key;
        public Order() {
            id = generateId();
            key=new Integer(id);
        public Object clone() {
            try {
                Order order = (Order)super.clone();
                order.setId(order.generateId());
                return order;
            } catch (CloneNotSupportedException e) {
                e.printStackTrace();
            return null;
        public static int generateId() {
            idwLock.lock();
            try {
                if (nextId == flipOverId) {
                    // redo this w/a number incrementor passing in null for the member variable
    //                ValueManipulator vm=null;
    //                NumberIncrementor ni = new NumberIncrementor(vm, 1, false);
                    NamedCache omsCache = CacheFactory.getCache("oms");
                    omsCache.lock("high_order_id");
                    Integer i = (Integer)omsCache.get("high_order_id");
                    if (i==null) i=188; // change to 1 once legacy is gone
                    omsCache.put("high_order_id", ++i);
                    omsCache.unlock("high_order_id");
                    flipOverId = (i+1) * MAX_ORDERS_PER_TRADER_ID;
                    nextId = (MAX_ORDERS_PER_TRADER_ID * i)+1;
                    return nextId;
                } else {
                    return ++nextId;
            } finally {
                idwLock.unlock();
        public boolean isCancelRequestedOrIsCanceled() {
            // change to cancelrequested lock, not ack lock
            if (orderStatus==OrderStatus.CANCELED)
                return true;
            //  ValueExtractor extractor = new ReflectionExtractor("getCancelCount");
            //  int cc = (Integer)cache.invoke( this.ID , extractor );
            Order o = (Order)getCache().get(this.id);
            int cc = o.getCancelCount();
            return cc > 0 || o.orderStatus == OrderStatus.CANCELED;
        public void setId(int Id) {
            this.id = Id;
        public int getId() {
            return id;
    }

  • Com.tangosol.util.AssertionException

    Getting this exception intermittently in my storage nodes (total of 4):
    23:54:16,092 ERROR [Logger@9260286 3.6.0.2] cluster (log:3) - 2012-05-01 23:54:16.087/2394.969 Oracle Coherence GE 3.6.0.2 <Error> (thread=DistributedCache:MessageDistributedCacheService,
                   member=7): Terminating PartitionedCache due to unhandled exception: com.tangosol.util.AssertionException
    23:54:16,126 ERROR [Logger@9260286 3.6.0.2] cluster (log:3) - 2012-05-01 23:54:16.087/2394.969 Oracle Coherence GE 3.6.0.2 <Error> (thread=DistributedCache:MessageDistributedCacheService,
                   member=7):
    com.tangosol.util.AssertionException:
         at com.tangosol.coherence.Component._assertFailed(Component.CDB:12)
         at com.tangosol.coherence.Component._assert(Component.CDB:3)
         at com.tangosol.coherence.component.net.message.requestMessage.DistributedCacheRequest$Poll.onCompletion(DistributedCacheRequest.CDB:15)
         at com.tangosol.coherence.component.net.Poll.close(Poll.CDB:13)
         at com.tangosol.coherence.component.net.Poll.onResponded(Poll.CDB:32)
         at com.tangosol.coherence.component.net.Poll.onResponse(Poll.CDB:3)
         at com.tangosol.coherence.component.net.message.requestMessage.DistributedCacheRequest$Poll.onResponse(DistributedCacheRequest.CDB:16)
         at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onMessage(Grid.CDB:26)
         at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onNotify(Grid.CDB:33)
         at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.PartitionedService.onNotify(PartitionedService.CDB:3)
         at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onNotify(PartitionedCache.CDB:3)
         at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)
         at java.lang.Thread.run(Thread.java:619)
    Version from the the manifest:
    Specification-Version: 3.6.0.2
    Implementation-Build: 18470
    This happens under the following scenario:
    I have 4 other nodes that are concurrently writing to the same cache using individual put() operations, about 200k objects in total
    Anybody have any ideas?
    Thanks

    Hi Carl,
    I guess the issue when the limit is exceeding.
    Probably you can try increasing the packet Size and run the test
    For more info:
    http://wiki.tangosol.com/display/COH33UG/Production+Checklist#ProductionChecklist-LargeClusterConfiguration
    Let me know the results.
    Thanks,
    Ashish

  • Java.io.NotSerializableException: com.tangosol.util.internal.ConcurrentCoun

    Hi,
    I am working on a small prototyep project trying to understand how coherence works.
    I have a object that creates an instance of entry processor and invokes the cache. I get following error. Entry processor is serializable - the app can write an instance of EP into a file.
    Using same setup if I merely call put() it works fine for me.
    Any idea what coherence is doing here ?
    Thanks
    ~s
    ===
    (Wrapped) com.tangosol.util.internal.ConcurrentCounter) java.io.NotSerializableException: com.tangosol.util.internal.ConcurrentCounter
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at java.util.Hashtable.writeObject(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
    at com.tangosol.coherence.Component.writeObject(Component.CDB:1)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at java.util.Hashtable.writeObject(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
    at com.tangosol.coherence.Component.writeObject(Component.CDB:1)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
    at com.tangosol.coherence.Component.writeObject(Component.CDB:1)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
    at com.tangosol.coherence.Component.writeObject(Component.CDB:1)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)

    The problem is fixed.
    In my EP, process() was returning "entry" instead of modified object. Comparing my code with some other samples helped me.
    So it is all down to my mistake.
    Thanks
    ~s

  • Usage of com.tangosol.util.ServiceListener

    Hi All,
    I am struggling to figure out how to register a com.tangosol.util.ServiceListener with a service in cache-configuration file?? My intention here is to perform some operation intimidate after the distributed self-service is started.
    Any info on this highly appreciated.
    Regards,
    Avinash

    user9170308 wrote:
    Hi All,
    I am struggling to figure out how to register a com.tangosol.util.ServiceListener with a service in cache-configuration file?? My intention here is to perform some operation intimidate after the distributed self-service is started.
    Any info on this highly appreciated.
    Regards,
    AvinashHi Avinash,
    I think you meant immediately... :)
    I am not sure if you can register a service listener in the configuration file, as the listener tag on the service registers a map listener.
    You can however define a partition-listener, which is invoked with a PARTITION_ASSIGNED when partitions are assigned to the senior node (starting with Coherence 3.6) upon starting up the distributed cache service on a storage-enabled node, and PARTITION_RECEIVE_BEGIN callbacks when non-senior nodes start getting their partitions so it is almost as good.
    On a storage-disabled node instantiation of a cache listener could be your clue, although that happens during configuring the service, so the service is not available at that point yet, but having a service listener for a distributed cache service on a node which is storage-disabled for the service is not typical anyway.
    You can also look at quorum policies starting with 3.6 which are invoked fairly early, too, but not necessarily on each node.
    Best regards,
    Robert

  • What is com.tangosol.util.Dequeue used for?

    Can I use a com.tangosol.util.Dequeue to allow one producer to be placing objects in a coherence backed dequeue while other consumers are atomically dequeueing from it?
    Thanks,
    Andrew

    snidely_whiplash wrote:
    Can I use a com.tangosol.util.Dequeue to allow one producer to be placing objects in a coherence backed dequeue while other consumers are atomically dequeueing from it?
    Thanks,
    AndrewHi Andrew,
    that class is not a queue backed by Coherence caches. It is simply a double ended queue similar to java.util.Dequeue introduced in Java 6.
    Best regards,
    Robert

  • Thread STUCK for more than 10minutes at  com.tangosol.util.SegmentedHashMap

    <[STUCK] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "707" seconds working on the request "weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl@11ddce1", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
    java.lang.Object.wait(Native Method)
    com.tangosol.util.SegmentedHashMap.contendForSegment(SegmentedHashMap.java:1391)
    com.tangosol.util.SegmentedHashMap.lockSegment(SegmentedHashMap.java:1301)
    com.tangosol.util.SegmentedHashMap.lockBucket(SegmentedHashMap.java:1266)
    com.tangosol.util.SegmentedHashMap.invokeOnKey(SegmentedHashMap.java:1058)
    com.tangosol.util.SegmentedConcurrentMap.lock(SegmentedConcurrentMap.java:197)
    com.tangosol.net.cache.CachingMap.get(CachingMap.java:462)

    Hi,
    A 2019 ms delay could be caused by a number of things. It could be network related or more likely as the message says the WebLogic node could have been doing a GC. As your WebLogic node is a Cluster member you need to make sure that its GC is properly tuned to avoid long GC pauses as this can destabelize the whole cluster. I see you are using 3.5.3/465p8 which is an older version of Coherence and lacks the newer node death detection algorithms. I know from the project I work on that also uses 3.5.3/465p8 that long GCs on cluster members can cause other nodes in the cluster to die if you get GC pauses that are too long or too frequent.
    I doubt that this message is related to the stuck thread issue in your original post, though it is hard to tell for certain.
    JK

  • When will we get a com.waveset.util.smtp interface?

    Hellos.
    Are there plans to expose smtp methods to the XPRESS invoke?
    Many times is there a need to fire off an email from a FORM rather than a WorkFlow. At present it is impossible. Dont forget, a WorkFlow may also use these methods.
    Sending email is quite straightforward, just writing bytes to a Socket. However, writing own code and adding it to IDM is NOT the way forwards. The fundamental methods should be available within the IDM product.. jdbc is, why not smtp?
    GF

    I put your postcode in link below however if this was right I don’t think
    you would be posting, if you have current problem you may like to post your
    router stats and BT speed test for others to offer some advice.
    https://www.btwholesale.com/pages/static/Community/Broadband_Community/Coverage/ADSL_Availibility_Ch...#
    Mortgage Advisor 2000-2008
    Green Energy Advisor 2008-2010
    Charity Health Care Provider Advisor 2010-
    I'm alright Jack....

  • Is it true that music pauses when a phone call comes in even when the ios6 'do not disturb' feature is activated?

    is it true that music pauses when a phone call comes in even when the 'do not disturb' feature is activated?
    thanks in advance

    You could test it out and let us know!
    Best of luck.

  • IPhone 4 - my phone doesn't "ring"...  Speaker plays, it works on vibrate, and when you set the ringer, it will play.  Just not when an incoming call comes in.  Any thoughts?

    iPhone 4 - my phone doesn't "ring".  Speaker plays, it works on vibrate, and when you set the ringer, it will play.  Just not when an incoming call comes in.  Any thoughts?

    Check the position of the mute switch. On the side, just above the volume keys.

  • HP 4120 Lync Phone Edition - Ringer Volume Level Can Not be controlled when a second call comes in for a workflow

    Here is the scenario we are experiencing with our HP 4120 Lync phones running the latest available firmware (4.0.7577.4455)
    1) A User has an HP 4120 phone and is a member of a workflow/response group which is setup with attendant routing method.
    2) The ringer volume is set to the minimum level by the user
    3) When a single call comes in to this user, the ringer volume level works as expected
    4) When two calls come in at the same time to this users phone, the ringer volume set by the user is ignored and the ringer plays at Maximum volume.
    This is causing disruptions to our office environment as we are unable to reliably control the volume levels of the ringers.
    There does not appear to be anything more in the settings/menus of the phones themselves.  I am thinking this may be an issue with the firmware, but if anyone else has any suggestions, they would be appreciated.
    Thanks!!

    Hi,
    Did the issue also happen before update to the latest firmware?
    Did the issue only happen for Response Group call or also happen for basic calls?
    If the issue only happen after updating to the latest firmware, it can be the issue of the firmware.
    As there is call delay for Lync IP Phone to be a agent of the Response Group. So you can try to use Lync desktop to instead for better performance.
    Best Regards,
    Eason Huang
    Eason Huang
    TechNet Community Support

  • How can I automate the multi-step process of looking up a caller's contact details when a telephone call comes in with caller ID?

    How can I automate the multi-step process of looking up a caller's contact details when a telephone call comes in with caller ID. I want to be able to see more than just the first & last name when a client calls me. I would like the caller ID to pull up the same information that shows up when you search for and find a contact name and then click on the right arrow.
    My workaround is to force/enter both the last name and the address in the last name field since then the address will show up.
    The only computerized way to look up this additional information is to put the client on hold, memorize the first and last name and correctly enter it in the search field of the contact database and hopefully find it before the client gets tired of waiting.
    Note that I go to about 48 small jobs per week. So far I have about 9,000 contacts. It's easy to make a mistake and have the client wondering what I'm doing and what's taking so long.
    The second workaround is to use paper and pencil and ask the client for name, address, cross street and phone number again, repeating what I did some time previously.
    Please help meautomate this process.

    You don't have to put anyone on hold. When the call comes in, tap the Home button, then tap contacts, go to the contact. Tap Home button when finished, tap the top banner to return to the call screen.

  • Hi, this is amit from india. just started using iphone 4s. i am observing that when an incoming call comes, the phone smtimes shows two virtual buttons of red and green color so as to attend or reject the call. but smtimes it just shows green button. why?

    Hi, this is amit from india. just started using iphone 4s. i am observing that when an incoming call comes, the phone smtimes shows two virtual buttons of red and green color so as to attend or reject the call. but smtimes it just shows green button with a slider to attend the call and there is no red button to reject the call. is it a bug or some setting?

    Because it behaves differently depending on whether the phone is locked (in standby) or unlocked (in use) when the call comes in.

  • I have my landline diverting to my iPhone. However, it does not distinguish whether the call has come from my diverted landline number. My old Nokia many years ago used to show an arrow symbol when it was a call thats source was diverted. I really need to

    I have my landline diverting to my iPhone. However, it does not distinguish whether the call has come from my diverted landline number. My old Nokia many years ago used to show an arrow symbol when it was a call thats source was diverted. I really need to know when a call has come from my landline so I can greet the caller in the appropriate way and also so I can be sufficiently short as I am getting charged for the call from my BT landline to my mobile.

    That is not a feature that's available on the iPhone. Sorry.

  • My phone name comes up when my wife calls from her phone

    For some reason, my wife's Iphone shows up as my Iphone name when she makes calendar appointments and when she calls people.  I have here number in my contacts so I do not see that My name shows up when she calls other people.  How do we set her phone so that when she calls people, the caller ID comes up as her name.  Also, how do we change it so that when she sends a calendar appointment, It comes up as her appointment and not mine?

    You could manage your account and change your name here: https://appleid.apple.com/

Maybe you are looking for

  • Error while activating source system

    Dear friends, I am getting Error ' Basic type does not exit'  while activating source system in RSA1. please give the solution . Regards, D.prabhu

  • Unwanted default to 'constrain aspect ratio' of crops

    Lightroom 2.6 Mac. Recently I've been annoyed that when I come to crop images the program defaults to 'constrain aspect ratio' which I don't usually want. It's easy enough to press the 'a' key toggle to unset this but when I come to crop the next ima

  • Update check status in FPCHR (issued from FI-CA) using EBS

    Hi All - We are planning to use FI-CA for issuing checks to our customers. We are also planning to have EBS. Based on my searching here is what I have found about how to make FI-CA checks and EBS work. 1. Enhance Event 0061 in FICA so the recon key f

  • Adding a new field in PPOMA_CRM

    Hi Experts,       In the attributes tab in the transaction PPOMA_CRM , for sales scenario there are number of attributes like acitivity reason,tupel,Country etc. I need to add anther attribute called URL ....How can I do this? Is there any screen con

  • AIR not starting on OS X

    Hi I'm running under OS X 10.9.5 and I can't run any AIR app anymore. I've see this topic : Adobe Air not working on Mac since OS X Yosemite upgrade But compiling my apps with either the latest AIR SDK 15 or AIR SDK 16 beta doesn't change anything. I