• [问题求助] 请求休息前提条件
    【问题来源】【必填】南网电网【问题简要】【必填】示忙状态下调用请求休息接口报错100-009【问题类别】【必填】CC-Gateway【AICC解决方案版本】【必填】AICC 24.200.0【期望解决时间】【选填】尽快【问题现象描述】【必填】示忙状态下调用请求休息接口报错100-009,空闲态下可以直接状态变更。请求休息的前置条件都有什么具体的限制吗,只能在空闲态下进行变更吗,不存在之前说到的接口延迟执行的情况吗【日志或错误截图】【可选】无【附件】【可选】无
  • [问题求助] transfer转接方式
    【问题来源】【必填】南网电网【问题简要】【必填】transfer转接方式devicetype选择5外呼号码,该号码可以是任意的手机号或者热线号码吗【问题类别】【必填】CC-Gateway【AICC解决方案版本】【必填】AICC 24.200.0【期望解决时间】【选填】尽快【问题现象描述】【必填】transfer转接方式devicetype选择5外呼号码,该号码可以是任意的手机号或者热线号码吗【日志或错误截图】【可选】无【附件】【可选】无
  • [问题求助] 签入后如何判断接话权限
    【问题来源】【必填】南网电网【问题简要】【必填】拥有不接来话权限的角色签入后是默认处于不接来话的状态还是要在签入成功后调用设置是否接听来话接口进行权限控制【问题类别】【必填】CC-Gateway【AICC解决方案版本】【必填】AICC 24.200.0【期望解决时间】【选填】尽快【问题现象描述】【必填】拥有不接来话权限的角色签入后是默认处于不接来话的状态还是要在签入成功后调用设置是否接听来话接口进行权限控制。【日志或错误截图】【可选】无【附件】【可选】无
  • [问题求助] 通话转移后,生成录音是一通还是两通,以及callid会变更吗
    【问题来源】【必填】南网电网【问题简要】【必填】通话转移后,生成录音是一通还是两通,以及callid会变更吗【问题类别】【必填】CC-Gateway【AICC解决方案版本】【必填】AICC 24.200.0【期望解决时间】【选填】尽快【问题现象描述】【必填】通话转移后,生成录音是一通还是两通,以及callid会变更吗。【日志或错误截图】【可选】无【附件】【可选】无
  • [问题求助] 视频坐席如何进行集成
    【问题来源】【必填】南网电网【问题简要】【必填】视频坐席如何进行集成,视频电话页面该如何打开,并且视频文件获取跟录音有何区别【问题类别】【必填】CC-Gateway【AICC解决方案版本】【必填】AICC 24.200.0【期望解决时间】【选填】尽快【问题现象描述】【必填】视频坐席如何进行实现,坐席签入时选择视频类型,那视频来话页面怎么加载,并且视频通话下按钮操作是否与语音情况下接口调用一致。视频来话情况下视频文件是否也跟录音一样通过录音事件标志开启,并且返回filename为视频文件路径【日志或错误截图】【可选】无【附件】【可选】无
  • [问题求助] t_cms_callin_skill_5min区分数据
    【问题来源】    【南方电网】【问题简要】计算规则【问题类别】    【可选问题分类:CMS开发】【AICC解决方案版本】    【AICC可选择版本:AICC 24.200】【期望解决时间】2024年9月6日【问题描述】    查询表:     呼入技能队列维度指标5分钟粒度表【表代码:t_cms_callin_skill_5min】     区分数据条件:     统计的技能队列编号【current_skill_id】、媒体类型【media_type】区分数据,     数据结果:     以第6条和第8条数据为例 :技能队列编号相同、媒体类型相同、时间相同,指标不同,还有别的字段去区分这2条数据?还是脏数据查询SQL如下:SELECT     lin5.log_date,     log_quarter,     log_half,     log_hour,     lin5.call_type,     lin5.current_skill_id,     lin5.fail_wait_ans_time,     lin5.media_type,     lin5.local_log_week FROM     aicc_cms.t_cms_callin_skill_5min AS lin5 ORDER BY     lin5.log_date DESC截图如下:
  • [问题求助] 坐席监控权限及操作
    【问题来源】【必填】南网电网【问题简要】【必填】如何判断坐席拥有质检权限,该怎么设置权限。并且强制操作时状态如何变更【问题类别】【必填】CC-Gateway【AICC解决方案版本】【必填】AICC 24.200.0【期望解决时间】【选填】尽快【问题现象描述】【必填】1.坐席对另一个坐席通话进行监听拦截插入,对坐席状态进行强制示闲示忙,需要判断坐席有没有权限进行这些操作吗,该如何进行权限赋予。2.通话态时可以进行监听拦截插入操作,强制示闲示忙签出有状态限制吗,如坐席处于空闲状态可进行强制示忙签出操作,坐席处于示忙态可以进行强制示闲签出操作,如果坐席处于休息和工作态时,是否能直接进行强制示闲示忙签出操作,还需要先调用退出休息退出工作态接口吗,直接调用强制操作接口是不是就可以实现状态直接转换的操作【日志或错误截图】【可选】无【附件】【可选】无
  • [问题求助] 各状态间的切换如何实现
    【问题来源】【必填】南网电网【问题简要】【必填】示忙状态到空闲状态,工作态和休息态的结束等,如何进行各状态间的跳转【问题类别】【必填】CC-Gateway【AICC解决方案版本】【必填】AICC 24.200.0【期望解决时间】【选填】尽快【问题现象描述】【必填】状态间的切换如何实现,示忙态时能否通过示闲接口直接进入到示闲状态,工作态时能否同时调用空闲和示忙接口分别进入不同状态而不需要调用取消工作态接口。取消示忙、取消休息和退出工作态等接口使用场景是什么样的。比如调用取消休息接口成功后AgentState_cancelRest_Success状态返回,怎么判断取消休息后进入什么状态中,示忙还是空闲【日志或错误截图】【可选】无【附件】【可选】无
  • [问题求助] 录音事件该如何触发
    【问题来源】【必填】南网电网【问题简要】【必填】录音事件该如何触发【问题类别】【必填】CC-Gateway【AICC解决方案版本】【必填】AICC 24.200.0【期望解决时间】【选填】尽快【问题现象描述】【必填】录音开始 AgentMediaEvent_Record 事件在restful接口情况下是否会自动触发,需手动触发开始录音接口吗【日志或错误截图】【可选】无【附件】【可选】无
  • [问题求助] 坐席签入语音平台后坐席队列签入问题
    【问题来源】【必填】南网电网【问题简要】【必填】resetSkill坐席签入后签入技能队列时,autoFlag传true默认签入所有的技能队列时,是否需要配置skillid签入技能队列号,该签入技能队列号该如何取值【问题类别】【必填】CC-Gateway【AICC解决方案版本】【必填】AICC 24.200.0【期望解决时间】【选填】尽快【问题现象描述】【必填】resetSkill坐席签入后签入技能队列时,autoFlag传true默认签入所有的技能队列时,是否需要配置skillid签入技能队列号,该签入技能队列号该如何取值【日志或错误截图】【可选】无【附件】【可选】无
  • [问题求助] AICC.24.200坐席签入后签入技能队列
    resetSkill坐席签入后签入技能队列时,autoFlag传true默认签入所有的技能队列时,是否需要配置skillid签入技能队列号,该签入技能队列号该如何取值
  • [技术干货] synchronized关键字的底层原理
    synchronized关键字是Java中用于控制多线程访问共享资源的一种机制,它确保同一时刻只有一个线程可以执行某个方法或代码块。其底层原理主要基于JVM(Java虚拟机)中的Monitor(监视器)机制来实现。以下是synchronized关键字的详细底层原理:1. Monitor机制Monitor(监视器):是Java虚拟机中的一种内置同步机制,每个Java对象都有一个与之关联的Monitor。Monitor通过内部的一些同步原语(如lock和unlock指令)来实现线程间的互斥访问和协调。锁的获取与释放:当一个线程尝试进入被synchronized修饰的代码块或方法时,它首先需要获取对象的Monitor。如果Monitor已被其他线程持有,则当前线程将被阻塞,直到Monitor变为可用状态。当线程完成执行后,它会释放Monitor,以便其他线程可以获取并继续执行。2. 锁的升级偏向锁(Biased Locking):Java 6及以后版本中引入的一种锁优化技术。如果某个对象锁在整个运行过程中只被一个线程持有,那么JVM会将该锁升级为偏向锁,以减少锁获取的开销。偏向锁通过CAS(Compare-And-Swap)操作将线程ID设置到对象的Mark Word中,以表示该对象锁已被当前线程占有。轻量级锁(Lightweight Locking):当存在多个线程竞争同一个锁时,偏向锁会升级为轻量级锁。轻量级锁通过CAS操作在JVM的栈帧中创建锁记录(Lock Record),并将锁对象的Mark Word指向该锁记录。如果锁记录中的Mark Word与锁对象的Mark Word一致,则当前线程获取锁成功;否则,表示存在锁竞争,可能需要升级到重量级锁。重量级锁(Heavyweight Locking):当轻量级锁无法满足需求时(如多个线程长时间竞争同一个锁),锁会升级为重量级锁。重量级锁依赖于操作系统层面的互斥量(Mutex)来实现,涉及到用户态和内核态的切换,成本较高。3. 锁的释放与等待/通知锁的释放:当线程完成synchronized代码块的执行后,它会通过unlock指令释放Monitor,并将Monitor返还给对象池,以便其他线程可以获取。等待/通知:在synchronized代码块中,线程可以通过调用对象的wait()方法进入等待状态,并释放Monitor。其他线程可以通过调用对象的notify()或notifyAll()方法唤醒等待的线程。这些操作都是通过操纵与对象关联的Monitor来实现的。4. 锁的获取流程线程尝试获取对象的Monitor。如果Monitor未被其他线程持有,则当前线程获取Monitor并继续执行。如果Monitor已被其他线程持有,则当前线程进入阻塞状态,等待Monitor变为可用。当Monitor变为可用时,当前线程重新尝试获取Monitor。5. 注意事项synchronized关键字是JVM层面的机制,其实现依赖于JVM的具体实现(如HotSpot)。锁的升级和降级是JVM自动进行的,无需开发者手动干预。在使用synchronized时,应尽量避免长时间持有锁,以减少线程阻塞和死锁的风险。综上所述,synchronized关键字的底层原理主要基于JVM中的Monitor机制,通过锁的获取、释放、升级和降级等机制来实现线程间的同步控制。
  • [技术干货] java中偏向锁、轻量级锁、重量级锁
    在Java中,锁是并发编程中用来控制多个线程对共享资源的访问的重要机制。Java的synchronized关键字和ReentrantLock等都是实现锁的方式。Java虚拟机(JVM)为了提高锁的性能,引入了偏向锁(Biased Locking)、轻量级锁(Lightweight Locking)和重量级锁(Heavyweight Locking)三种锁状态。这三种锁状态的转换主要是为了提高锁的性能,减少线程在获取锁时的开销。1. 偏向锁(Biased Locking)偏向锁是Java 6引入的一种锁优化,它假设大多数情况下,锁不存在多线程竞争,锁总是由同一线程多次获得。当一个线程访问同步块并获取锁时,锁会进入偏向模式,此时Mark Word里会存储锁偏向的线程ID,以后该线程进入和退出同步块时不需要进行CAS操作来加锁和解锁,只需简单地测试一下锁是否还指向当前线程ID即可。如果测试成功,表示线程已经获得了锁。如果失败,则尝试使用轻量级锁。偏向锁的优势在于,当锁只被一个线程访问时,可以极大地减少锁的获取和释放的开销。2. 轻量级锁(Lightweight Locking)轻量级锁是相对于使用操作系统互斥量(Mutex)来实现的传统锁而言的。它用于解决在没有多线程竞争的情况下,减少传统的重量级锁使用操作系统互斥量产生的性能消耗。当锁处于偏向锁状态,但发生线程竞争,或者锁一开始就不是偏向锁时,就会尝试使用轻量级锁。轻量级锁通过CAS(Compare-And-Swap)操作来尝试把锁对象的Mark Word更新为指向当前线程的栈帧中的Lock Record的指针。如果成功,当前线程就获得了锁;如果失败,表示有其他线程竞争锁,锁会膨胀为重量级锁。3. 重量级锁(Heavyweight Locking)重量级锁是传统意义上的锁,它依赖于底层操作系统的Mutex Lock来实现。当锁膨胀为重量级锁时,意味着线程竞争非常激烈,JVM会调用操作系统的互斥量来实现同步控制。线程阻塞和唤醒都需要操作系统的帮助,因此开销较大。总结偏向锁、轻量级锁和重量级锁是Java虚拟机为了提高锁的性能而引入的三种锁状态。它们之间的转换是JVM根据锁的竞争情况自动进行的。偏向锁适用于锁只被一个线程访问的场景;轻量级锁适用于锁被少量线程竞争的场景;重量级锁适用于锁被多个线程激烈竞争的场景。这三种锁状态的存在,使得Java的锁机制能够灵活应对不同场景下的并发需求,从而提高程序的性能。
  • [技术干货] Arthas中JVM相关命令详解
    Arthas是一款由Alibaba开源的Java诊断工具,它能够在不重启JVM的情况下,实时查看和修改JVM的运行参数,从而帮助开发者诊断和解决生产环境中的性能问题。以下是Arthas中JVM相关命令的详细解析:1. dashboard功能:查看当前系统的实时数据面板,包括CPU、内存、线程、GC等关键指标。参数:-i:刷新实时数据的时间间隔(ms),默认5000ms。使用示例:dashboard -i 10000:间隔10秒刷新一次大盘信息。注意:此命令是一个可视化的控制台,显示CPU、内存等使用指标以及线程的状态,是初步查看系统性能问题的常用命令。2. thread功能:查看当前JVM的线程堆栈信息。参数:id:指定线程ID,查看该线程的运行堆栈。-n <N>:指定最忙的前N个线程并打印堆栈。-b:找出当前阻塞其他线程的线程。-i <value>:指定CPU使用率统计的采样间隔,单位为毫秒,默认值为200。--all:显示所有匹配的线程。使用示例:thread:显示当前线程。thread -n 3:显示最忙的前3个线程并打印堆栈。thread --state RUNNABLE:查看运行时状态的线程。thread -b:打印当前阻塞其他线程的线程。3. jvm功能:查看当前JVM的信息,包括线程数、文件描述符数、内存信息等。使用示例:jvm:查看JVM的基本信息。数据说明:THREAD相关:包括活跃的线程数、守护线程数、曾经活着的最大线程数等。文件描述符相关:包括最大可以打开的文件描述符数、当前打开的文件描述符数等。内存信息:包括堆大小、非堆大小、代码缓存、元空间等。4. memory功能:查看JVM的内存信息,包括堆内存和非堆内存的使用情况。使用示例:memory:查看JVM的内存信息。5. vmoption功能:查看和修改JVM里诊断相关的参数。参数:查看所有option:vmoption查看指定option:vmoption <optionName>更新指定option(如果可写):vmoption <optionName> <newValue>注意:不是所有的JVM启动参数都可以在运行时通过vmoption命令进行修改。一些关键参数(如-Xms和-Xmx)在JVM启动时设置,并且在运行期间不能修改。6. heapdump功能:dump Java堆内存,类似于jmap命令的heap dump功能。参数:--live:可选参数,表示只打印有活跃引用的对象,丢弃进行垃圾回收的对象。[文件路径/文件名.hprof]:指定dump文件的保存路径和名称。使用示例:heapdump --live /root/test/study-06-01.hprof:dump当前JVM的堆内存到指定文件,只包含活跃对象。7. 其他命令getstatic:查看类的静态属性。不推荐使用,推荐使用ognl命令。ognl:执行OGNL表达式,用于更复杂的对象属性访问和操作。mbean:查看MBean的信息。MBean是一种规范的JavaBean,用于在JMX中注册和管理。sysenv:查看JVM的环境变量。sysprop:查看和修改JVM的系统属性。vmtool:从JVM里查询对象,执行forceGC等操作。总结Arthas提供的JVM相关命令覆盖了线程、内存、JVM信息、堆dump等多个方面,为Java应用的性能诊断和调优提供了强大的工具。开发者可以根据实际需要选择合适的命令来监控和分析JVM的性能问题。
  • [问题求助] AICC-CMS接口调用SSL证书失效
    【问题来源】    【南方电网】【问题简要】AICC-CMS鉴权失败【问题类别】    【可选问题分类:CMS开发】【AICC解决方案版本】    【AICC可选择版本:AICC 24.200】【期望解决时间】2024年9月1日【问题现象描述】       1、使用鉴权demo(支持8.15版本)生成Authorization在ApiPost中可以调通健康检查接口(URL:https://ip:port/rest/cmsapp/v1/ping)。       2、Java代码中使用文档提供示例代码报javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificates do not conform to algorithm constraints。【日志或错误截图】调用方法:使用文档demo       健康检查接口报错内容:
总条数:764 到第
上滑加载中