Unregister notification
Hi all!
Once I have registered an asynchronous notification (plsql callback). Now I want to unregister it.
First when I did it - success, but the notification still works. When I try to unregister notifications now, I receive an error:
ORA-24950: unregister failed, registration not found
ORA-06512: at "SYS.DBMS_AQ", line 403
ORA-06512: at line 14
As I told, the callback still works. How can I remove it completely? I have tried to stop/start the queues, but nothing changed.
On the other topic:
Can I use notifications (callback functions) for Exception queues? When I tried this, it did not worked.
Regards.
Please speak to Oracle Support regarding this issue. They will be able to diagnose the problem more fully and make sure your database metadata stays in a consistent state.
Similar Messages
-
Very slow BITS download on SCCM client
I have a problem with one Windows 2012 server and SCCM client BITS downloads. Jobs created by SCCM client and under SYSTEm account are extremely slow, some 40-60Kbit/sec only. Link itself between client and SCCM 2007 server is 1..1.5Mbit/sec.
After a couple days I have exchausted my ideas. BITS GP policies are in place, minimum at workhours is 100kbit/sec but download is always 40-60Kbit/sec. Is it workhours or not. 17Mb file I can download over http manually in seconds. It also downloads
with seconds when I created schedule task under system account where there was row
start-bitstransfer -source http://server/test.cab -destination c:\folder\test.cab
I tried changing permissions on SCCM side, give anonymous user rights to download, put NTAuthenticationProviders to "NTLM" but without any changes on download speed. To download this 17Mb file with SCCM client takes hours. Of course, if I switch
to CIFS/SMB then it also gets files within seconds but I really don't want to do that.
Any ideas why BITS jobs created by SCCM client are so slow? How can I tell to it that link is quite good and you can download faster.Started yesterday one job and at morning its status was TRANSFERRED.
18MB and 12h download time
GUID: {ADD1B985-5FCF-4461-BE8C-196561C283F4} DISPLAY: 'CCMDTS Job'
TYPE: DOWNLOAD STATE: TRANSFERRED OWNER: NT AUTHORITY\SYSTEM
PRIORITY: LOW FILES: 1 / 1 BYTES: 18128896 / 18128896
CREATION TIME: 23.01.2014 18:12:35 MODIFICATION TIME: 24.01.2014 5:31:15
COMPLETION TIME: 24.01.2014 5:31:15 ACL FLAGS:
NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 11
RETRY DELAY: 60 NO PROGRESS TIMEOUT: 2419200 ERROR COUNT: 0
PROXY USAGE: NO_PROXY PROXY LIST: NULL PROXY BYPASS LIST: NULL
DESCRIPTION:
JOB FILES:
18128896 / 18128896 WORKING
http://server:80/SMS_DP_SMSPKGE$/PRI0003A/TortoiseSVN-1.6.16.21511-x64-sv
n-1.6.17.msi -> C:\Windows\SysWOW64\CCM\Cache\PRI0003A.4.System\TortoiseSVN-1.6.16.21511-x64-svn-1.6.17.msi
NOTIFICATION COMMAND LINE: none
owner MIC integrity level: SYSTEM
owner elevated ? true
This job is read-only to the current CMD window because the job's mandatory
integrity level of SYSTEM is higher than the window's level of HIGH.
Peercaching flags
Enable download from peers :false
Enable serving to peers :false
CUSTOM HEADERS: NULL -
I've tried to download the 9i NT client software (92010NT_CLT.zip (625,558,536 bytes) from:
http://otn.oracle.com/software/products/oracle9i/htdocs/winsoft.html
twice now, and end up with a corrupted file after approx a 2.5hr download (mean rate of around 60Kbs) on my own cable modem connection, and on my client's high speed connection.
Is there a site from which I can download he the client software at a higher mean bps?Started yesterday one job and at morning its status was TRANSFERRED.
18MB and 12h download time
GUID: {ADD1B985-5FCF-4461-BE8C-196561C283F4} DISPLAY: 'CCMDTS Job'
TYPE: DOWNLOAD STATE: TRANSFERRED OWNER: NT AUTHORITY\SYSTEM
PRIORITY: LOW FILES: 1 / 1 BYTES: 18128896 / 18128896
CREATION TIME: 23.01.2014 18:12:35 MODIFICATION TIME: 24.01.2014 5:31:15
COMPLETION TIME: 24.01.2014 5:31:15 ACL FLAGS:
NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 11
RETRY DELAY: 60 NO PROGRESS TIMEOUT: 2419200 ERROR COUNT: 0
PROXY USAGE: NO_PROXY PROXY LIST: NULL PROXY BYPASS LIST: NULL
DESCRIPTION:
JOB FILES:
18128896 / 18128896 WORKING
http://server:80/SMS_DP_SMSPKGE$/PRI0003A/TortoiseSVN-1.6.16.21511-x64-sv
n-1.6.17.msi -> C:\Windows\SysWOW64\CCM\Cache\PRI0003A.4.System\TortoiseSVN-1.6.16.21511-x64-svn-1.6.17.msi
NOTIFICATION COMMAND LINE: none
owner MIC integrity level: SYSTEM
owner elevated ? true
This job is read-only to the current CMD window because the job's mandatory
integrity level of SYSTEM is higher than the window's level of HIGH.
Peercaching flags
Enable download from peers :false
Enable serving to peers :false
CUSTOM HEADERS: NULL -
Transcoding Sessions unregistered with CUCM from standby gateway of CUBE with HA usingHSRP
I have 2 C2921 routers working fine untill I enbale CUBE with HA. After configureing HSRP on ethernet interface, the transcoding and conferencing resources were unregistered on HSRP standby router even though I bind the sccp ccm group to physical interface.
Raised Cisco TAC, but they also could not solve yet. Cisco TAC recommanded to have loopback or another interface.
I configure gi02/ without HSRP configuration, but still the transcoding and conferencing resources are not getting registered. Cisco TAC is still analysing the logs.
I am hoping I get resolution here. Configuration of standby router is below.
Building configuration...
Current configuration : 13985 bytes
! Last configuration change at 15:07:25 BST Fri Aug 1 2014
! NVRAM config last updated at 15:07:25 BST Fri Aug 1 2014
version 15.4
service timestamps debug datetime msec localtime
service timestamps log datetime msec localtime
service password-encryption
service internal
service sequence-numbers
hostname CHN-RT-VG01
boot-start-marker
boot system flash:c2900-universalk9_npe-mz.SPA.154-3.M.bin
boot system flash:c2900-universalk9_npe-mz.SPA.154-2.T1.bin
boot-end-marker
! card type command needed for slot/vwic-slot 0/0
card type e1 0 1
card type e1 0 2
logging queue-limit 10000
logging buffered 10000000
logging rate-limit 10000
no logging console
enable secret 4 XkK1t85uKpzHay4O0x8hP0rt1uO7UwNlcWBLwLAsn3Y
ipc zone default
association 1
no shutdown
protocol sctp
local-port 5000
local-ip 10.215.8.148
remote-port 5000
remote-ip 10.215.8.149
--More-- no aaa new-model
clock timezone BST 0 0
clock summer-time BST date Mar 28 1993 0:00 Oct 27 2035 23:59
network-clock-participate wic 1
network-clock-participate wic 2
network-clock-select 1 E1 0/1/0
network-clock-select 2 E1 0/1/1
network-clock-select 3 E1 0/2/0
no ip domain lookup
ip domain name DILFLPROD.CO.UK
--More-- ip cef
ipv6 multicast rpf use-bgp
no ipv6 cef
multilink bundle-name authenticated
isdn switch-type primary-4ess
cts logging verbose
crypto pki trustpoint TP-self-signed-3464013556
enrollment selfsigned
subject-name cn=IOS-Self-Signed-Certificate-3464013556
revocation-check none
rsakeypair TP-self-signed-3464013556
crypto pki certificate chain TP-self-signed-3464013556
certificate self-signed 01
3082022B 30820194 A0030201 02020101 300D0609 2A864886 F70D0101 05050030
31312F30 2D060355 04031326 494F532D 53656C66 2D536967 6E65642D 43657274
69666963 6174652D 33343634 30313335 3536301E 170D3132 31313232 30353530
30345A17 0D323030 31303130 30303030 305A3031 312F302D 06035504 03132649
4F532D53 656C662D 5369676E 65642D43 65727469 66696361 74652D33 34363430
31333535 3630819F 300D0609 2A864886 F70D0101 01050003 818D0030 81890281
8100FD06 30324087 5D131745 446B6933 963E32DB 4B3F78D3 C2627F7B A68792EA
0686B7C1 93B66C1A 2287DD72 26AC10BE F6B5DE89 CEF9C800 836DAD25 4A32FC52
99A65E45 FAD97919 4BD2CFC8 136EB9AC F7F21045 0A930247 0E72CE1B 1C00D1BD
59B83BED 73639AA5 C78A657B EC55F15B 5287703C 3ED94E47 492DFAD0 89934B27
5CD10203 010001A3 53305130 0F060355 1D130101 FF040530 030101FF 301F0603
551D2304 18301680 146F6961 3C46FDE7 C105ADBF 5C07A675 7F7B5828 E1301D06
03551D0E 04160414 6F69613C 46FDE7C1 05ADBF5C 07A6757F 7B5828E1 300D0609
2A864886 F70D0101 05050003 8181005E 509EACC9 67205643 133DD745 5A6E7C82
7AAE0766 C68C215B 6222A86F A08AC77D 1030664E F77F6CFB CF021C94 BC5FB190
FEA96EE9 5A502DC6 D4407467 9662683E CFDC1779 4016A9A0 32EF415D 6E21DF53
D710D173 7BFC300A FDEE54D8 36BBED28 05A6A752 652F2550 E6BC5896 D4EC222A
C82C1B2A 4FEF6ED3 44DE109E DD796E
--More-- quit
voice-card 0
dspfarm
dsp services dspfarm
voice call send-alert
voice service voip
mode border-element
allow-connections sip to sip
redundancy
fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback none
sip
early-offer forced
midcall-signaling passthru
g729 annexb-all
voice translation-rule 100
rule 1 /^44845..\(.....\)/ /\1/
rule 3 /^4411...\(....\)/ /2\1/
voice translation-profile LiveOpsInbound
translate called 100
voice translation-profile OutboundtoKolDDI
translate called 1
--More-- !
application
global
service alternate Default
license udi pid CISCO2921/K9 sn FCZ164760NP
hw-module pvdm 0/0
hw-module pvdm 0/1
username controller privilege 15 password 7 050F0F03284B4B070D04
username voiceadmin privilege 15 password 7 1514190501242F37243A3327
username shaums privilege 15 password 7 151602000D2D2E2A3C32
username 745162 privilege 15 password 7 08254542001E0019060A
username 256108 privilege 15 password 7 0124030858040B0A70
redundancy inter-device
scheme standby SB
redundancy
no keepalive-enable
notification-timer 60000
controller E1 0/1/0
pri-group timeslots 1-31 service mgcp
controller E1 0/1/1
pri-group timeslots 1-31 service mgcp
controller E1 0/2/0
pri-group timeslots 1-31 service mgcp
controller E1 0/2/1
pri-group timeslots 1-31 service mgcp
track 1 interface GigabitEthernet0/0 line-protocol
track 2 interface GigabitEthernet0/1 line-protocol
interface Embedded-Service-Engine0/0
no ip address
shutdown
interface GigabitEthernet0/0
description **Inside***
ip address 10.215.8.132 255.255.255.240
standby delay minimum 30 reload 60
standby version 2
standby 1 ip 10.215.8.135
standby 1 priority 50
standby 1 preempt
standby 1 name SB
standby 1 track 2 decrement 10
duplex auto
speed auto
interface GigabitEthernet0/1
description **Outside***
ip address 10.215.8.148 255.255.255.240
standby delay minimum 30 reload 60
standby version 2
standby 2 ip 10.215.8.150
standby 2 priority 50
standby 2 preempt
standby 2 track 1 decrement 10
duplex auto
speed auto
media-type rj45
--More-- !
interface GigabitEthernet0/2
ip address 10.215.8.164 255.255.255.240
duplex full
speed 1000
interface Serial0/1/0:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
isdn incoming-voice voice
isdn bind-l3 ccm-manager
no cdp enable
interface Serial0/1/1:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
isdn incoming-voice voice
isdn bind-l3 ccm-manager
no cdp enable
interface Serial0/2/0:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
isdn incoming-voice voice
isdn bind-l3 ccm-manager
no cdp enable
interface Serial0/2/1:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
isdn incoming-voice voice
isdn bind-l3 ccm-manager
no cdp enable
ip forward-protocol nd
--More-- ip http server
ip http access-class 23
ip http authentication local
ip http secure-server
ip http timeout-policy idle 60 life 86400 requests 10000
ip rtcp report interval 3000
ip route 0.0.0.0 0.0.0.0 10.215.8.129
ip sla auto discovery
ip sla 40001
udp-jitter 10.215.191.3 17000 source-ip 10.215.8.132 codec g729a codec-numpackets 100
tos 184
owner SW.IpSla.CHVISM0210.SolarWindsOrion
frequency 300
timeout 180000
threshold 1000
ip sla schedule 40001 life forever start-time now
ip sla 40003
udp-jitter 10.215.221.131 17000 source-ip 10.215.8.132 codec g729a codec-numpackets 100
tos 184
owner SW.IpSla.CHVISM0210.SolarWindsOrion
frequency 300
timeout 180000
threshold 1000
ip sla schedule 40003 life forever start-time now
no logging trap
snmp-server community m&9C4rd4L%mw RO 10
snmp-server community m&9C4rd4L%m RW 10
snmp-server enable traps isdn call-information
snmp-server enable traps isdn layer2
snmp-server enable traps isdn chan-not-avail
snmp-server enable traps isdn ietf
snmp-server host 10.215.10.10 version 2c m&9C4rd4L%mw
snmp-server host 10.215.232.202 version 2c m&9C4rd4L%mw
tftp-server flash0:SCCP42.9-1-1SR1S.loads
tftp-server flash0:apps42.9-1-1TH1-16.sbn
tftp-server flash0:cnu42.9-1-1TH1-16.sbn
--More-- tftp-server flash0:cvm42sccp.9-1-1TH1-16.sbn
tftp-server flash0:dsp42.9-1-1TH1-16.sbn
tftp-server flash0:jar42sccp.9-1-1TH1-16.sbn
tftp-server flash0:term42.default.loads
tftp-server flash0:term62.default.loads
tftp-server flash0:/c2600-ipvoicek9-mz.124-25d.bin
access-list 23 permit 10.10.10.0 0.0.0.7
control-plane
voice-port 0/1/0:15
voice-port 0/2/0:15
voice-port 0/1/1:15
voice-port 0/2/1:15
mgcp
mgcp call-agent 10.215.8.7 2427 service-type mgcp version 0.1
mgcp dtmf-relay voip codec all mode out-of-band
mgcp rtp unreachable timeout 1000 action notify
mgcp modem passthrough voip mode nse
mgcp package-capability rtp-package
mgcp package-capability sst-package
mgcp package-capability pre-package
no mgcp package-capability res-package
no mgcp timer receive-rtcp
mgcp sdp simple
mgcp fax t38 inhibit
mgcp bind control source-interface GigabitEthernet0/0
mgcp bind media source-interface GigabitEthernet0/0
mgcp behavior rsip-range tgcp-only
mgcp behavior comedia-role none
mgcp behavior comedia-check-media-src disable
--More-- mgcp behavior comedia-sdp-force disable
mgcp profile default
sccp local GigabitEthernet0/2
sccp ccm 10.215.8.7 identifier 1 priority 1 version 7.0
sccp ccm 10.215.8.6 identifier 2 priority 2 version 7.0
sccp ccm group 1
bind interface GigabitEthernet0/2
associate ccm 1 priority 1
associate ccm 2 priority 2
associate profile 2 register CFBCHEVG1
associate profile 1 register XCODERCHEVG1
ccm-manager music-on-hold
ccm-manager fallback-mgcp
ccm-manager redundant-host 10.215.8.6
ccm-manager mgcp
no ccm-manager fax protocol cisco
ccm-manager config server 10.215.8.6
ccm-manager config
dspfarm profile 1 transcode
codec g729r8
codec ilbc
codec pass-through
codec g722-64
codec g711ulaw
codec g711alaw
codec g729ar8
codec g729abr8
maximum sessions 70
associate application SCCP
dspfarm profile 2 conference
codec g729br8
codec g729r8
codec g729abr8
--More-- codec g729ar8
codec g711alaw
codec g711ulaw
codec g722-64
codec ilbc
maximum sessions 10
associate application SCCP
dial-peer voice 1 pots
description **Incoming Dial Peer**
incoming called-number .
direct-inward-dial
dial-peer voice 2 pots
description **Outbound Dialpeer**
translation-profile outgoing OutboundtoKolDDI
destination-pattern 02083917600
incoming called-number .
port 0/1/1:15
dial-peer voice 3 pots
description **Outbound Dialpeer**
translation-profile outgoing OutboundtoKolDDI
destination-pattern 02083917600
incoming called-number .
port 0/2/0:15
dial-peer voice 4 pots
description **Outbound Dialpeer**
translation-profile outgoing OutboundtoKolDDI
destination-pattern 02083917600
incoming called-number .
port 0/2/1:15
dial-peer voice 100 voip
description to-DorkingCUCM
translation-profile outgoing LiveOpsInbound
destination-pattern 44..........
session protocol sipv2
session target ipv4:10.156.125.2
--More-- incoming called-number .
voice-class sip bind control source-interface GigabitEthernet0/0
voice-class sip bind media source-interface GigabitEthernet0/0
dtmf-relay rtp-nte
codec g711ulaw
no vad
dial-peer voice 200 voip
description to-LiveOpsCCC
preference 1
destination-pattern .T
session protocol sipv2
session target ipv4:x.x.x.x
incoming called-number 44..........
voice-class sip bind control source-interface GigabitEthernet0/1
voice-class sip bind media source-interface GigabitEthernet0/1
dtmf-relay rtp-nte
codec g711ulaw
no vad
dial-peer voice 300 voip
description to-LiveOpsCCC
preference 2
destination-pattern .T
session protocol sipv2
session target ipv4:x.x.x.x
incoming called-number 44..........
voice-class sip bind control source-interface GigabitEthernet0/1
voice-class sip bind media source-interface GigabitEthernet0/1
dtmf-relay rtp-nte
codec g711ulaw
no vad
dial-peer voice 101 voip
description to-ChessingtonCUCM
translation-profile outgoing LiveOpsInbound
preference 1
destination-pattern 44..........
session protocol sipv2
session target ipv4:10.215.8.7
--More-- incoming called-number 40008
voice-class sip bind control source-interface GigabitEthernet0/0
voice-class sip bind media source-interface GigabitEthernet0/0
dtmf-relay rtp-nte
codec g711ulaw
no vad
dial-peer voice 102 voip
description to-ChessingtonCUCM
translation-profile outgoing LiveOpsInbound
preference 2
destination-pattern 44..........
session protocol sipv2
session target ipv4:10.215.8.6
incoming called-number 40008
voice-class sip bind control source-interface GigabitEthernet0/0
voice-class sip bind media source-interface GigabitEthernet0/0
dtmf-relay rtp-nte
codec g711ulaw
no vad
dial-peer voice 103 voip
description to-DorkingCUCM
preference 1
shutdown
destination-pattern 25544
session protocol sipv2
session target ipv4:10.156.125.2
incoming called-number .
voice-class sip bind control source-interface GigabitEthernet0/0
voice-class sip bind media source-interface GigabitEthernet0/0
dtmf-relay rtp-nte
codec g711ulaw
no vad
dial-peer voice 104 voip
description to-ChessingtonCUCM
translation-profile outgoing LiveOpsInbound
preference 1
shutdown
--More-- destination-pattern 40008
session protocol sipv2
session target ipv4:10.215.8.7
incoming called-number .
voice-class sip bind control source-interface GigabitEthernet0/1
voice-class sip bind media source-interface GigabitEthernet0/1
dtmf-relay rtp-nte
codec g711ulaw
no vad
gateway
media-inactivity-criteria all
timer receive-rtcp 5
timer receive-rtp 1200
gatekeeper
shutdown
banner login ^CC
"This system and components thereof is the sole and exclusive property of Diligenta and is intended solely for the usage of its authorized administrators. Unauthorized access or use will attract appropriate legal action.
Access would be bound by Diligenta policies and could be monitored. Do not use this system, if the terms are not acceptable."
^C
line con 0
login local
line aux 0
line 2
no activation-character
no exec
transport preferred none
transport output pad telnet rlogin lapb-ta mop udptn v120 ssh
stopbits 1
line vty 0 4
privilege level 15
login local
--More-- transport input ssh
line vty 5 15
privilege level 15
login local
transport input ssh
scheduler allocate 20000 1000
endI don't have an answer for you but would like to add a note. I was initially configuring and troubleshooting some things on a HA cube pair recently. I was using external DNS for some dial-peer session target lookup and noticed the non-active CUBE could not lookup DNS. When the non-active CUBE became active it could all of a sudden resolve DNS. So I am speculating that something to do with the HA configuration is disallowing communication or bindings preventing routing to the rest of the network from the non-active CUBE. I ended up putting local host records on the router to make me feel better. I am guessing whatever is causing that might be related to the reason your SCCP is loosing registration on the non-active CUBE.
Jaime says what you are trying to do is not supported anyway. I would like a a little clarification on that but what I believe to be supported is if you need transcoding or mtp resources for this CUBE only (Not registered to UCM) then LTI is a good option.
http://www.cisco.com/c/en/us/support/docs/voice-unified-communications/unified-border-element/115018-configure-cube-lti.html
Hope any of this helps. I am really commenting so I can track any updates to this thread. :) -
HT4314 Why wont apple let you disable or unregister from gamecenter!? why?
Why wont apple let you disable or unregister from gamecenter?! Iv done everything I can but games log into it reactivated its notifications aswell. It auto logs me back in...I want apple to let you unregister completely why not?? I have disabled all notifications from Gamecenter romoved all games listed, i deleted my email adress registered, i changed my user name...and loged out but games reactivate it, I also noticed it still keeps a record of your previous score and when reactivated relists all games on your handset again aswell.
I feel the same way -- I would REALLY like to remove this misbegotten piece of junk completely. I would SETTLE for being able to disable it -- although there are instructions for "disabling" it, it doesn't STAY disabled. I have followed the instructions, removed my email address (although it still uses my email address as the login and won't allow me to ACTUALLY remove it), made my profile private, then signed out... And the next time the device is powered back on, the account is logged in again and insisting on trying to connect to every game I play. So I deny access, "disable" it, sign out, etc, again... ad infinitum, ad nauseum.
When the rest of my family switched to android, I stubbornly stayed with my beloved iOS devices and my Macs, but this annoyance -- which WILL NOT go away -- almost makes me think I should reconsider. I HATE Game Center, and want it off my devices. -
The service "Apple Mobile Device" may not have unregistered....
For a long time I have not been able to get the pic off my Iphone. It syncs up to Itunes but the camera wizard no longer turns on. In mt computer it is not there.
In my hardware device manager under imaging devices the Iphone has a yellow exclamation point. Apple Mobile driver is fine but my PC will not allow me to un-install, roll back or reinstall, I always get an error... it states data in invalid or this device is need to boot up the PC.
I have tried reseting, un-installing and the re-installing all that is apple, and even cleaning my regs.
In my event viewer for PlayandPlug manger I have an error that states...
"The service "Apple Mobile Device" may not have unregistered for device event notifications before it was stopped."
I also can not delete C:\Program Files\Common Files\Apple\Mobile Device Support\Drivers
I tells me it is protect or in use even after everything apple is no longer on my PC.
Any help would be grateful and for those who also suffer this problem I feel your pain.Hi gottsbett,
What security software is running on your PC? Try reconfiguring, temporarily disabling, or uninstalling it.
Try restarting the Apple Mobile Device Service as described here: http://support.apple.com/kb/TS1495
If the issue persists after disabling the security software and attempting to restart the service, try completely removing and reinstalling iTunes as described here: http://support.apple.com/kb/HT1926
-Jason -
Problem sending notification message to Android and iOS devices with azure messaging dll
We are a Bizspark customer andfor the past two days we are facing problem in Azure Notification Hub. We were trying to
send push notifications to Android devices registered in "seexxxxxxwams" - An Azure Mobile Service in our account and no
registered android devices are receiving the notifications. When we tried to debug it via Notification Hub in Azure Portal (seexxxxxxwamshub
- Notification hub in our account), the results are showing that the notifications are sent to the devices. However, the devices
are not receiving the notifications which was receiving before.
Kindly let us know whether we are missing something in our code (Please find the code below) or is there any problem in Azure Notification
Hub (for Android GCM).
Thanks.
using System.Text;
using Android.App;
using Android.Content;
using Android.Util;
using Gcm.Client;
using Android.Support.V4.App;
//VERY VERY VERY IMPORTANT NOTE!!!!
// Your package name MUST NOT start with an uppercase letter.
// Android does not allow permissions to start with an upper case letter
// If it does you will get a very cryptic error in logcat and it will not be obvious why you are crying!
// So please, for the love of all that is kind on this earth, use a LOWERCASE first letter in your Package Name!!!!
using ByteSmith.WindowsAzure.Messaging;
using System.Diagnostics;
using System.Collections.Generic;
using System;
[assembly: Permission(Name = "@[email protected]_MESSAGE")]
[assembly: UsesPermission(Name = "@[email protected]_MESSAGE")]
[assembly: UsesPermission(Name = "com.google.android.c2dm.permission.RECEIVE")]
//GET_ACCOUNTS is only needed for android versions 4.0.3 and below
[assembly: UsesPermission(Name = "android.permission.GET_ACCOUNTS")]
[assembly: UsesPermission(Name = "android.permission.INTERNET")]
[assembly: UsesPermission(Name = "android.permission.WAKE_LOCK")]
namespace seeMuscatAndroidApp
//You must subclass this!
[BroadcastReceiver(Permission= Gcm.Client.Constants.PERMISSION_GCM_INTENTS)]
[IntentFilter(new string[] { Gcm.Client.Constants.INTENT_FROM_GCM_MESSAGE }, Categories = new string[] { "@PACKAGE_NAME@" })]
[IntentFilter(new string[] { Gcm.Client.Constants.INTENT_FROM_GCM_REGISTRATION_CALLBACK }, Categories = new string[] { "@PACKAGE_NAME@"
[IntentFilter(new string[] { Gcm.Client.Constants.INTENT_FROM_GCM_LIBRARY_RETRY }, Categories = new string[] { "@PACKAGE_NAME@"
public class PushHandlerBroadcastReceiver : GcmBroadcastReceiverBase<GcmService>
//IMPORTANT: Change this to your own Sender ID!
//The SENDER_ID is your Google API Console App Project ID.
// Be sure to get the right Project ID from your Google APIs Console. It's not the named project ID that appears in the Overview,
// but instead the numeric project id in the url:
// where 785671162406 is the project id, which is the SENDER_ID to use!
public static string[] SENDER_IDS = new string[] { Constants.SenderID };
public const string TAG = "GoogleCloudMessaging";
[Service] //Must use the service tag
public class GcmService : GcmServiceBase
public static string RegistrationID { get; private set; }
private NotificationHub Hub { get; set; }
Context _generalContext;
public GcmService() : base(PushHandlerBroadcastReceiver.SENDER_IDS)
Log.Info(PushHandlerBroadcastReceiver.TAG, "GcmService() constructor");
protected override async void OnRegistered (Context context, string registrationId)
Log.Verbose(PushHandlerBroadcastReceiver.TAG, "GCM Registered: " + registrationId);
RegistrationID = registrationId;
_generalContext = context;
//createNotification("GcmService Registered...", "The device has been Registered, Tap to View!");
Hub = new NotificationHub(Constants.NotificationHubPath, Constants.ConnectionString);
try
await Hub.UnregisterAllAsync(registrationId);
catch (Exception ex)
Debug.WriteLine(ex.Message);
Debugger.Break();
var tags = new List<string>() { main.userCountry, main.userCity, main.userLatitude, main.userLongitude, main.userPhoneMake,
main.userPhoneModel, main.userPhoneName, main.userPhoneAndroidVersion, main.userAppVersion,main.userUID};
Console.WriteLine("///////////HUB TAGS///////////////////");
Console.WriteLine("Country:" + main.userCountry);
Console.WriteLine("City:" + main.userCity);
Console.WriteLine("Latitude:" + main.userLatitude);
Console.WriteLine("Longitude:"+main.userLongitude);
Console.WriteLine("Make:" + main.userPhoneMake);
Console.WriteLine("Model:" + main.userPhoneModel);
Console.WriteLine("Phone Name:" + main.userPhoneName);
Console.WriteLine("Android Version:" + main.userPhoneAndroidVersion);
Console.WriteLine("App version:" + main.userAppVersion);
Console.WriteLine("User ID:" + main.userUID);
Console.WriteLine("///////////END OF HUB TAGS///////////////////");
try
var hubRegistration = await Hub.RegisterNativeAsync(registrationId, tags);
Debug.WriteLine("RegistrationId:" + hubRegistration.RegistrationId);
catch (Exception ex)
Debug.WriteLine("#########$$$$Error:"+ex.Message);
protected override void OnUnRegistered (Context context, string registrationId)
Log.Verbose(PushHandlerBroadcastReceiver.TAG, "GCM Unregistered: " + registrationId);
protected override void OnMessage (Context context, Intent intent)
Log.Info(PushHandlerBroadcastReceiver.TAG, "GCM Message Received!");
Debug.WriteLine("/********* GCM Received ****************");
var msg = new StringBuilder();
if (intent != null && intent.Extras != null)
foreach (var key in intent.Extras.KeySet())
msg.AppendLine(key + "=" + intent.Extras.Get(key).ToString());
//Store the message
var prefs = GetSharedPreferences(context.PackageName, FileCreationMode.Private);
var edit = prefs.Edit();
edit.PutString("last_msg", msg.ToString());
edit.Commit();
string message = intent.Extras.GetString("message");
if (!string.IsNullOrEmpty(message))
createNotification("New todo item!", "Todo item: " + message);
return;
string msg2 = intent.Extras.GetString("msg");
string notititle = intent.Extras.GetString("notititle");
if (!string.IsNullOrEmpty(msg2))
createNotification(notititle, msg2);
return;
protected override bool OnRecoverableError (Context context, string errorId)
Log.Warn(PushHandlerBroadcastReceiver.TAG, "Recoverable Error: " + errorId);
return base.OnRecoverableError (context, errorId);
protected override void OnError (Context context, string errorId)
Log.Error(PushHandlerBroadcastReceiver.TAG, "GCM Error: " + errorId);
void createNotification(string title, string desc)
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
Intent uiIntent = new Intent();
uiIntent.SetClass(this, typeof(dealsview));
uiIntent.PutExtra("contentID", "todaydeals");
uiIntent.PutExtra("contentName", "");
uiIntent.PutExtra("isSale", "");
const int pendingIntentId = 0;
PendingIntent pendingIntent = PendingIntent.GetActivity(this, pendingIntentId, uiIntent, PendingIntentFlags.OneShot);
var notification = builder.SetContentIntent(pendingIntent).SetSmallIcon(Resource.Drawable.Icon).SetAutoCancel(true).SetContentTitle(title).SetContentText(desc).Build();
var notificationManager = GetSystemService(Context.NotificationService) as NotificationManager;
notificationManager.Notify(1, notification);Hi Anpe83,
TL;DR: The answer: Currently, no.
As we speak, there is RMS Sharing app for all mobile platforms you mentioned. RMS Sharing App lets you open any file type that is a .pfile (generic file created by RMS Sharing App on your PC). But this is not a granular protection and policy enforcement
- you can think about this way of protecting as a .zip file that has been password protected. So once you "unzip" the pfile with RMS Sharing App - you can do whatever you want (open in a native mobile app, forward, edit, copy, delete, etc) with that file.
Now, RMS Sharing App lets you protect pictures only on your mobile devices which I assume you will not be a feature used very often.
On the other hand Microsoft has published Office suite (Word, Excel, etc) for iOS devices (iPhone and iPad).
Currently (this is the key word here) those are NOT RMS enlighted yet, so f.e. no word document that is RMS protected can be opened with your Office suite for iOs. I also know that Microsoft is preparing an update for iOS devices in the nereast
future to make Office suites (including OWA app) RMS-aware.
PS. For the current time being there are some third parties that extend RMS capabilities to your mobile device platforms. You can also wait few months (unfortunately cannot promise that) for RMS enlighted Microsoft apps for iOS devices.
PS2. If you haven't heard you can also set RMS Sharing App to work withi your ADRMS which is onprem (not only with RMS in the cloud). For those you need some cool toys: Windows 2012 R2, ADFS 3.0 and RMS Mobile Device Extension.
Hope this answers your question.
Did my post help you or make you laugh? Don't forget to click the Helpful vote :) If I answered your question please mark my post as an Answer. -
AQ PL/SQL registered notifications
Suppose I want to see what registered notifications exist for AQ plsql notifications.
What I'm talking about are those notifications to PL/SQL callback procedures that have been registered using DBMS_AQ.REGISTER.
I've searched and searched for data dictionary information about this but cannot find it.
How can I use DBMS_AQ.UNREGISTER if I do not know what is already registered ?
I would have thought that SYS.ALL_STREAMS_MESSAGE_CONSUMERS would have been a good guess but it doesn't have any rows and I have a working PLSQL notification active.
Database is v10.2.
Anyone know where to find this information ?
Thanks.Hello,
Unfortunately there is not a user view which is definitely an oversight. As suggested you could be granted the necessary privilges on sys.reg$ to overcome this.
However, this whole area has been re-invigorated by the Database Change Notification feature which came in in 10.2. So much so that in 11.1 onwards you have the SUBSCRREGISTRATIONS and other v$ views as per http://download.oracle.com/docs/cd/B28359_01/server.111/b28420/aq_views.htm#sthref1151.
The EMON process architecture has been changed to the now standard Coordinator/slave architecture as well. So with this investment in development in this area the robustness, scalability and diagnosability is improving.
Thanks
Peter -
Scopes Stuck in 'Unregistered' State??
I keep getting my WF Manager Scopes into an 'Unregistered' state. And once there I can't do anything with it (can't delete the scopes, recreate scopes, post notifications, etc.,).
Here is the error I get when I try to do anything with the Host once I have gotten in this state:
Scope '/MyScope/0' is not in an active state. Its current state is 'Unregistered'. HTTP headers received from the server - ActivityId: fcab6654-e0eb-4d98-8e6b-687dce187a55. NodeId: Machine1. Scope: /MyScoper/0. Client ActivityId : 61ddec2f-b61f-459b-b45a-1656fed3ea2c.
This only happens during administrative tasks (i.e.; deleting scopes and then trying to recreate them). As I understand thiese happen asychrnously in the background is it possible I am hitting a race condition issue.
Any thoughts on how this is happening or how I can recover? I have tried the obvious things of stopping and starting the WF Manager Backend service and recycling the AppPool, but no luck. I am guessing something is locked in one of the WF or
SB databases but not sure what or how to unlock it.
The only way I can recover is to delete all the records in the Scopes table except the first record (i.e.; with ParentScopeID = NULL).
FWIW, I can reproduce this at will.
RodLet me get your scenario right.
a) You have a code activity that you have added to the white list
b) You have a workflow in a scope that references this code activity
Now, you want to deploy a new version of this code activity and publish a modified version of your workflow that references this new version of the code activity. Is this understanding correct?
Since you were planning on deleting the scope, I presume you are ok with losing instances using the older definition. Is this true? -
Clear out Change Notification Registrations
Hi,
We are using change notification in a couple of places in our application. I forgot to add the registration removal to the deconstructors, and the database reached the maximum number of allowed registrations.
I've fixed the code, but I want to clear out the old registrations in the database. I thought I found the correct procedure to call, but it isn't working.
Anyone know how to clear out old registrations?
sqlplus system/mypass@mydb
SQL> select * from dba_change_notification_regs where username='DGRANT';
USERNAME REGID REGFLAGS CALLBACK OPERATIONS_FILTER CHANGELAG TIMEOUT TABLE_NAME
DGRANT 11220 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11220 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11221 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11221 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11222 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11222 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11223 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11223 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11224 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11224 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11225 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11225 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11226 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11226 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11227 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11227 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11228 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3556 DGRANT.RECIPE
DGRANT 11228 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3556 DGRANT.USERS
SQL> exec dbms_change_notification.deregister(11220);
BEGIN dbms_change_notification.deregister(11220); END;
ERROR at line 1:
ORA-29970: Specified registration id does not exist
ORA-06512: at "SYS.DBMS_CHANGE_NOTIFICATION", line 3
ORA-06512: at "SYS.DBMS_CHANGE_NOTIFICATION", line 68
ORA-06512: at line 1
SQL> connect dgrant/passwd@mydb
Connected.
SQL> exec dbms_change_notification.deregister(11220);
BEGIN dbms_change_notification.deregister(11220); END;
ERROR at line 1:
ORA-29970: Specified registration id does not exist
ORA-06512: at "SYS.DBMS_CHANGE_NOTIFICATION", line 3
ORA-06512: at "SYS.DBMS_CHANGE_NOTIFICATION", line 68
ORA-06512: at line 1
SQL> select * from user_change_notification_regs;
USERNAME REGID REGFLAGS CALLBACK OPERATIONS_FILTER CHANGELAG TIMEOUT TABLE_NAME
DGRANT 11220 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11220 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11221 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11221 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11222 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11222 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11223 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11223 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11224 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11224 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11225 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11225 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11226 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11226 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11227 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.RECIPE
DGRANT 11227 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3558 DGRANT.USERS
DGRANT 11228 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3556 DGRANT.RECIPE
DGRANT 11228 2 net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.30.9.74)(PORT=1005)))?PR=0 0 0 3556 DGRANT.USERSI had the same problem
I revoke change notification from user than grant again and nothing has changed
SQL> SELECT regid,
2 table_name,
3 callback
4 FROM user_change_notification_regs;
REGID TABLE_NAME CALLBACK
42 TRADER.POSITION net8://(ADDRESS=(PROTOCOL=tcp)(HOST=127.
0.0.1)(PORT=47633))?PR=0
43 TRADER.POSITION net8://(ADDRESS=(PROTOCOL=tcp)(HOST=127.
0.0.1)(PORT=47633))?PR=0
I tried to use the code below but I got an error
The code
public void run () throws SQLException
try
OracleConnection conn = getConnection();
conn.unregisterDatabaseChangeNotification(REGID);
System.out.println("unregistered with id " + REGID);
catch (SQLException sqle)
System.out.println("Error trying to delete registration with id " + REGID);
sqle.printStackTrace();
The error
Error trying to delete registration with id 42
java.sql.SQLException: Fonction non prise en charge
at oracle.jdbc.driver.PhysicalConnection.doUnregisterDatabaseChangeNotification(PhysicalConnection.java:10351)
at oracle.jdbc.driver.PhysicalConnection.unregisterDatabaseChangeNotification(PhysicalConnection.java:10324)
at oracle.jdbc.driver.PhysicalConnection.unregisterDatabaseChangeNotification(PhysicalConnection.java:10315)
at com.oracle.coherence.swingdemo.dcn.DeregisterDCN.run(DeregisterDCN.java:29)
at com.oracle.coherence.swingdemo.dcn.DeregisterDCN.main(DeregisterDCN.java:49)
Does someone has a solution please ?
Thank you for all...
Christophe. -
I am currently investigating UWL and its features.
The scenario I am facing is a portal application where users need to be notified on a portal iview (a customized UWL based iview?) about events like file uploading in a KM folder(s) or they would get a custom notification due to a specific business rule. Previously I did some "experiments" by using the RecentNotification iView with not satisfactory results...
Do you think UWL could be the solution for our needs? I found that docs and infos on SAP sdn are a bit limited and "messy" about this subject so... any suggestion would be much appreciated. Best scenario could be a step-by-step tutorial.
thanks in adavance for yr support
From Italy
Massimiliano TurcoHi Max!
Basicly yes, chapter 6.4 describes the basics of a repository service. However, this isn't too detailed for someone seeking a solution.
Here's an example of a repository service:
package com.xxx;
import java.util.Collection;
import java.util.Iterator;
import java.util.StringTokenizer;
import com.sap.netweaver.bc.rf.util.event.IEventBroker;
import com.sapportals.portal.prt.logger.ILogger;
import com.sapportals.portal.prt.runtime.PortalRuntime;
import com.sapportals.wcm.WcmException;
import com.sapportals.wcm.crt.component.IReconfigurable;
import com.sapportals.wcm.crt.component.StartupException;
import com.sapportals.wcm.crt.configuration.ConfigurationException;
import com.sapportals.wcm.crt.configuration.IConfiguration;
import com.sapportals.wcm.repository.IResource;
import com.sapportals.wcm.repository.manager.IRepositoryManager;
import com.sapportals.wcm.repository.manager.IResourceEvent;
import com.sapportals.wcm.repository.manager.IResourceEventReceiver;
import com.sapportals.wcm.repository.manager.ResourceEvent;
import com.sapportals.wcm.repository.service.AbstractRepositoryService;
import com.sapportals.wcm.repository.service.ServiceNotAvailableException;
import com.sapportals.wcm.util.events.IEvent;
* Class <code>XXXRepositoryService</code> implements a respository service
* that listens for several events on a defined directory.
public class XXXRepositoryService extends AbstractRepositoryService implements IReconfigurable, IResourceEventReceiver {
* The name of the configuration attribute that defines the maximum number of
* news articles to aggregate.
public static final String CONFIG_ARTICLECOUNT = "articleCount";
* The name of the configuration attribute that defines the destination
* directory in KM.
public static final String CONFIG_KMDESTDIR = "kmDestDir";
* The name of the configuration attribute that defines the destination file
* in KM.
public static final String CONFIG_KMDESTFILE = "kmDestFile";
* The name of the configuration attribute that defines the news directory
* in KM.
public static final String CONFIG_KMXXXDIR = "kmNewsDir";
* The name of the configuration attribute that defines the KM service user.
public static final String CONFIG_KMUSER = "kmUser";
* The name of the configuration attribute that defines the supported
* languages.
public static final String CONFIG_LANGUAGES = "languages";
// the logger for this service
private static final ILogger _LOGGER = PortalRuntime.getLogger();
// The type/name of the repository service.
private static final String _TYPE = "com.xx.XXXRepositoryService";
// The destination directory in KM.
private String _kmDestDir;
// The destination file in KM.
private String _kmDestFile;
// The news directory in KM.
private String _kmNewsDir;
// The KM service user unique name.
private String _kmUser;
// The supported languages.
private String[] _languages;
// Storing repository managers for later unregistering
private Collection registeredRepositoryManagers = null;
* Create a new instance of <code>NewsRepositoryService</code>
public XXXRepositoryService() {
super();
_LOGGER.info(_TYPE + ": constructor called.");
* (non-Javadoc)
* @see com.sapportals.wcm.repository.service.IRepositoryService#getServiceType()
public String getServiceType() {
return _TYPE;
* (non-Javadoc)
* @see com.sapportals.wcm.util.events.IEventReceiver#received(com.sapportals.wcm.util.events.IEvent)
public void received(IEvent event) {
try {
_LOGGER.info(_TYPE + ": event received, checking...");
if ((event != null) && (event instanceof IResourceEvent)) {
final IResourceEvent resourceEvent = (IResourceEvent) event;
final IResource eventObject = resourceEvent.getResource();
final String eventPath = eventObject.getRID().getPath();
if ((eventObject != null) && (eventPath.startsWith(_kmNewsDir)) && (!eventPath.startsWith(_kmDestDir))) {
ManageNewsAggregation.work(ManageXXX.getEP5serviceUser(_kmUser), _kmNewsDir, _kmDestDir, _kmDestFile, _articleCount, _languages);
_LOGGER.info(_TYPE + ": xxx successfully");
} catch (Throwable t) {
_LOGGER.severe(t, _TYPE + ": unable to handle event " + event.getDescription() + " caused by " + t.getMessage());
* (non-Javadoc)
* @see com.sapportals.wcm.crt.component.IReconfigurable#reconfigure(com.sapportals.wcm.crt.configuration.IConfiguration)
public void reconfigure(IConfiguration config) throws ConfigurationException {
stateHandler.preReconfigure();
try {
parseConfig(config);
} catch (ConfigurationException ex) {
stateHandler.postReconfigure(ex);
throw ex;
this.config = config;
stateHandler.postReconfigure();
* (non-Javadoc)
* @see com.sapportals.wcm.repository.service.AbstractRepositoryService#startUpImpl(java.util.Collection)
protected void startUpImpl(Collection repositoryManagers) throws ConfigurationException, StartupException {
_LOGGER.info(_TYPE + ": parsing config...");
parseConfig(config);
_LOGGER.info(_TYPE + ": done parsing config.");
try {
_LOGGER.info(_TYPE + ": startUpImpl(): iterating repository managers: " + repositoryManagers.size());
Iterator itRepMan = repositoryManagers.iterator();
while (itRepMan.hasNext()) {
IRepositoryManager repMan = (IRepositoryManager) itRepMan.next();
registerMeFor(repMan);
_LOGGER.info(_TYPE + ": registered for repository manager: " + repMan.getID());
_LOGGER.info(_TYPE + ": startup completed");
registeredRepositoryManagers = repositoryManagers;
} catch (WcmException e) {
_LOGGER.severe(e, _TYPE + ": error during startup");
throw new StartupException(e.getMessage(), e);
* (non-Javadoc)
* @see com.sapportals.wcm.repository.service.AbstractRepositoryService#shutDownImpl()
protected void shutDownImpl() {
try {
_LOGGER.info(_TYPE + ": shutDownImpl(): iterating repository managers: " + registeredRepositoryManagers.size());
Iterator itRepMan = registeredRepositoryManagers.iterator();
while (itRepMan.hasNext()) {
IRepositoryManager repMan = (IRepositoryManager) itRepMan.next();
unregisterMeFrom(repMan);
_LOGGER.info(_TYPE + ": unregistered from repository manager: " + repMan.getID());
_LOGGER.info(_TYPE + ": shutdown completed");
} catch (WcmException e) {
_LOGGER.severe(e, _TYPE + ": error during shutdown");
_LOGGER.info(_TYPE + ": stopped");
* (non-Javadoc)
* @see com.sapportals.wcm.repository.service.AbstractRepositoryService#addRepositoryAssignment(com.sapportals.wcm.repository.manager.IRepositoryManager)
protected void addRepositoryAssignment(IRepositoryManager mgr) throws ServiceNotAvailableException {
try {
registerMeFor(mgr);
} catch (WcmException e) {
throw new ServiceNotAvailableException("Cannot register repository service " + _TYPE + " caused by: " + e.getMessage());
* (non-Javadoc)
* @see com.sapportals.wcm.repository.service.AbstractRepositoryService#removeRepositoryAssignment(com.sapportals.wcm.repository.manager.IRepositoryManager)
protected void removeRepositoryAssignment(IRepositoryManager mgr) throws WcmException {
unregisterMeFrom(mgr);
_LOGGER.info(_TYPE + ": removed registration from repository manager: " + mgr.getID());
* Register this repository service for the specified repository manager.
* @param mgr The repository manager.
* @throws WcmException When the service cannot be registered.
private void registerMeFor(IRepositoryManager mgr) throws WcmException {
// register for all events
mgr.getEventBroker().register(this, ResourceEvent.CREATE_CHILD_TEMPLATE, IEventBroker.PRIO_MIN, true);
mgr.getEventBroker().register(this, ResourceEvent.SET_TEMPLATE, IEventBroker.PRIO_MIN, true);
mgr.getEventBroker().register(this, ResourceEvent.COPY_TEMPLATE, IEventBroker.PRIO_MIN, true);
mgr.getEventBroker().register(this, ResourceEvent.MOVE_TEMPLATE, IEventBroker.PRIO_MIN, true);
mgr.getEventBroker().register(this, ResourceEvent.RENAME_TEMPLATE, IEventBroker.PRIO_MIN, true);
mgr.getEventBroker().register(this, ResourceEvent.DELETE_TEMPLATE, IEventBroker.PRIO_MIN, true);
* Unregister this repository service from the specified repository manager.
* @param mgr The repository manager.
* @throws WcmException When the service cannot be unregistered.
private void unregisterMeFrom(IRepositoryManager mgr) throws WcmException {
// unregister all events
mgr.getEventBroker().unregister(this, ResourceEvent.CREATE_CHILD_TEMPLATE);
mgr.getEventBroker().unregister(this, ResourceEvent.SET_TEMPLATE);
mgr.getEventBroker().unregister(this, ResourceEvent.COPY_TEMPLATE);
mgr.getEventBroker().unregister(this, ResourceEvent.MOVE_TEMPLATE);
mgr.getEventBroker().unregister(this, ResourceEvent.RENAME_TEMPLATE);
mgr.getEventBroker().unregister(this, ResourceEvent.DELETE_TEMPLATE);
* Parse the configuration object and extract the desired attributes.
* @param config The configuration object.
* @throws ConfigurationException
private void parseConfig(IConfiguration config) throws ConfigurationException {
String tmp = null;
// KM service user
_kmUser = config.getAttribute(CONFIG_KMUSER);
// news directory
tmp = config.getAttribute(CONFIG_KMNEWSDIR);
if ((tmp == null) || (tmp.length() < 1))
throw new ConfigurationException("Attribute " + CONFIG_KMXXXDIR + " must not be empty");
else
_kmNewsDir = tmp;
// destination directory
tmp = config.getAttribute(CONFIG_KMDESTDIR);
if ((tmp == null) || (tmp.length() < 1))
throw new ConfigurationException("Attribute " + CONFIG_KMDESTDIR + " must not be empty");
else
_kmDestDir = tmp;
// destination file
tmp = config.getAttribute(CONFIG_KMDESTFILE);
if ((tmp == null) || (tmp.length() < 1))
throw new ConfigurationException("Attribute " + CONFIG_KMDESTFILE + " must not be empty");
else
_kmDestFile = tmp;
// article count
tmp = config.getAttribute(CONFIG_ARTICLECOUNT);
try {
_articleCount = Integer.parseInt(tmp);
} catch (NumberFormatException e) {
_articleCount = 0;
throw new ConfigurationException("Attribute " + CONFIG_ARTICLECOUNT + " must be a valid number");
// languages
tmp = config.getAttribute(CONFIG_LANGUAGES);
if ((tmp == null) || (tmp.length() < 1))
throw new ConfigurationException("Attribute " + CONFIG_LANGUAGES + " must not be empty");
else {
StringTokenizer st = new StringTokenizer(tmp, ",");
_languages = new String[st.countTokens()];
int i = 0;
while (st.hasMoreTokens()) {
_languages[i++] = st.nextToken();
_LOGGER.info(_TYPE + ": configuration is _kmUser=" + _kmUser);
_LOGGER.info(_TYPE + ": _kmNewsDir=" + _kmNewsDir);
_LOGGER.info(_TYPE + ": _kmDestDir=" + _kmDestDir);
_LOGGER.info(_TYPE + ": _kmDestFile=" + _kmDestFile);
_LOGGER.info(_TYPE + ": _articleCount=" + _articleCount);
This code registeres certain event handlers in the KM, on which the received-method is called. Depending on the event type you may start some processing like creating notifications.
Many links about implementing repository services can be found here: https://www.sdn.sap.com/irj/sdn/thread?threadID=45636.
Cheers,
Jürgen -
How to stop Forum emailing notification?
please advise how i can unregister to forum website and stop receiving emails
PLEASEHello
I assume you mean the Forum watches. Right?
You can disable this notification mails in control panel of your user name. In forum you can see a box with your user name, e. g. Welcome, leanneg. Click on Your Control Panel > Your Watches.
There you can disable it! :) -
Push notifications... at last!
For several weeks I have been working an ANE for iOS Push Notifications (APNS). I now have a beta with the following specs.
Methods:
registerForAPN( badges : Boolean = true, sounds : Boolean = true, alerts : Boolean = true, newsStandContent : Boolean = false ) : void;
unregisterForAPN() : void;
askForAPNtypes() : void;
setLocalBadge( badgeNumber : Number) : void;
Last method doesn't really have to do with APN, but was build in because you probably will need it.
All methods are void. For consistency all data is sent back through events.
Events:
REGISTERING - Just for debugging. Means registerForRemoteNotificationTypes was called.
REGISTERED - Means registration was successful. Returns deviceToken on event.deviceToken
FAILED - Means registration failed. Returns error string on event.info
UNREGISTERING - Just for debugging. Means unregisterForRemoteNotifications was called.
NOTIFICATION - Returns the payload of an APN as a string on event.info (not yet thoroughly tested, since I don't need it in my own implementation)
TYPES - Returns the currently registered APN-types as booleans on event.types.badges, event.types.sounds, event.types.alerts, event.types.newsStandContent.
Send me a PM with your e-mail address if you are interested in this ANE. Source code will not be released, just a ready-to-use ANE.Hi anders-tbl,
Great that you got the Push notifications working... but I have some questions on it, it will be helpful if you can put up light that how you breakthrough them...
1. Does your implementation is able to give "aps" data to the app when app was not running in background and push notification comes to iPhone? if you can give a hint it will be helpful..
2. How did you overcome these "undefined selector" issues for " _stageLoaded" and " notifyASyncMessages"...
I too implemented the push notifications but for question 1 I get the aps data when app is running in background as "didFinishLaunchingWithOptions" never fires in native extension. and for question 2 it seems that these are internal engine methods which for now I have just over ridden with blank implentation to avoid crashes...
Nice if you can help..
Best Wishes,
Sanniv. -
Send email to unregistered users who try to perform password reset and face error.
Hi,
I am trying to configure FIM to send email to user when an unregistered user tries to perform reset without registering.
Mail him to register first and then go for reset. But, thing is the workflow i am trying to design for this is allowing to only select the requests where status is denied, but there is no way to compare it against the unregistered userlist.
Please help me out.
Regards
DivyeHello ,
May be it's possible if you have users email imported on Fim service .
When a user try to reset his password and he is not register a workflow instance is created with a status DidNotExecute so you can create a set wich contains this workflow instance and MPR on transition In of this will triiger a notification Worflow .
You create a criteria-based membership set wihch select "workflow instance" object type that match all of the following confitions :
Creator is Anonymous User
Workflow definitions is "your Rest AuthN Workflow"
Workflow Status is DidNotExecute
For the Notification Workllow , you must use somethink like //target/target for "to" attribute .
Regards
Gaetan -
TEMPRO displays warranty as unregistered, in the toshiba site it is!
TEMPRO shows my warranty status as unregistered.
The Toshiba Product Registration web site finds my registration normaly..
The only difference is that on the Toshiba Warranty registration web site as Model No my Part No., it does find my warranty normaly though
Also the Toshiba Warranty Lookup service is not working, it just displays my serial no without further details.
Is it a mixup in the databases in toshiba?
Any ideas on how to correct this?Hi
I dont know what Tempro software does exactly but usually it scans the HDD and monitors the installed Toshiba drivers, tools and utilities.
If newer version would be released then Tempro would send you a notification and recommendation for a update.
Regarding your warranty;
To get the warranty details you need the serial number of the notebook. I dont know if Tempro looks for the serial number or only for model number but if you want to ensure your warranty status then you could check this Toshiba page:
http://www.toshiba-tro.de/unitdetails/
Greets
Jeffrey
Maybe you are looking for
-
Can I share iPhoto between 2 users ?
My wife and I each have separate user accounts on our Imac, but we'd like to share the Iphoto library. Since my account was set up first and done so some time ago, all of our family pics are under my user account. Can we share the library so new im
-
Imac-external Display only possible?
Hi, is there any way to either use the Imac display or an external monitor/ beamer with a current Imac? I would like to use the internal display if I use the Imac for music etc but would like to play games via a beamer. I would like to have the graph
-
Exchange 2010 Auto-Mapping not removing mailbox from Outlook
I am having an issue that others seem to have as well. When I give Full Access to another mailbox, auto-mapping brings it in to the users Outlook 2010 client. However, when I remove that users access to the shared mailbox it doesn't remove the mail
-
Hi There, I'm having trouble sending my files to the printers, my fonts is jumping... How do i make sure that my fonts are embedded into my PDF file, I'm using indesign cs5.5 Please can someone help me, I have distiller as well. Thank You Kind Regard
-
The sound on my mac is too low. I have the settings as high as they will go. Any suggestions?